Как поместить кнопку в середине UIView по горизонтали и вертикали для любого устройства?

У меня есть UIButton типа UIButtonRoundedRectType, который я хочу поместить в середину экрана по горизонтали и вертикали.

Я пытался сделать это с помощью жесткого кодирования чисел, но это оглядывается назад при запуске на iPhone против iPhone (сетчатки). Я хотел бы программно удерживать кнопку в центре, вычисляя ширину контейнера.

Итак, я попробовал это, но это не работает.

container = view.frame.size
button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
button.frame = [[container.width/2-button.frame.size.width/2,150], [280,50]]

4 ответа

Простой подход:

button.center = view.center;

Как насчет:

button.center = [button.superview convertPoint:button.superview.center fromView:button.superview.superview];

Если вы используете представление в XIB, вы можете использовать то, что я упомянул.

Перейдите к XIB -> Нажмите на View -> Нажмите на инспектор размера -> Arrange (Вы можете установить положение здесь).

Выберите все свойства Position of Container а также Fill Container,

И если вы создаете представление динамически (не в XIB), то вы можете использовать в соответствии с границами суперпредставления.

Вы не были слишком далеко. Это работает (я пробовал):

container = view.frame.size
button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
button_size = [ 280, 50 ]
left_margin = (container.width / 2) - (button_size[0] / 2)
top_margin = (container.height / 2) - (button_size[1] / 2)
button.frame = [[ left_margin, top_margin ], button_size ]
button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin
Другие вопросы по тегам