Установите позицию просмотра в верхнем правом углу программно в касании какао

Мне нужно убедиться, что один вид A (размер: 200x200) всегда выровнен по верхнему правому углу внутри второго вида B (полный экран). Я хочу убедиться, что вид А остается в этом месте независимо от ориентации устройства. Правда, у меня нет проблем с этим при использовании конструктора интерфейса для позиционирования представлений, но мне нужно построить это программно. Я полагаю, мне следует использовать некоторые настройки автоматического изменения размера. Не могли бы вы сказать, какой из них должен выровнять вид в верхнем правом углу его суперпредставления?

1 ответ

Решение
UIView parentView  //your full screen view
UIView view //the 200x200 view

[parentView addSubview:view];
CGRect frame = view.frame;

//align on top right
CGFloat xPosition = CGRectGetWidth(parentView.frame) - CGRectGetWidth(frame);
frame.origin = CGPointMake(ceil(xPosition), 0.0);
view.frame = frame;

//autoresizing so it stays at top right (flexible left and flexible bottom margin)
view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin

Это позиционирует вид сверху справа и устанавливает маску авторазмера, чтобы она оставалась в этой позиции.

Другие вопросы по тегам