Центриране с автоматично оформление Xcode

Разработвам приложение Swift и проектирам интерфейса в инструмента за създаване на интерфейси в Xcode. Моят интерфейс (който се състои от два UILabels, изглежда добре в портретен режим, но изглежда ужасно в пейзажен режим.

Проблемът е, че етикетите няма да останат центрирани, както искам, когато се завъртят. Използвах следните ограничения за автоматично оформление:

Upper edge constraint: top layout guide 
Lower edge constraint: bottom layout guide
Right edge constraint: standard value
Left edge constraint: standard value

Тези настройки трябва да не работят, тъй като етикетът не остава центриран при завъртане. Какви са правилните ограничения, които да се използват за автоматично оформление за центриране на този етикет?


person rocket101    schedule 01.08.2014    source източник


Отговори (1)


Можете да постигнете необходимия ефект в създателя на интерфейси, бих ви посъветвал да го направите с помощта на програмно ограничение за автоматично оформление.

[self.view addConstraint: [NSLayoutConstraint
    constraintWithItem:self.view 
    attribute:NSLayoutAttributeCenterX 
    relatedBy:NSLayoutRelationEqual 
    toItem:"YOUR VIEW" 
    attribute:NSLayoutAttributeCenterX 
    multiplier:1
    constant:0]];

Горният атрибут NSLayoutAttributeCenterX центрира „ВАШИЯТ ИЗГЛЕД“ хоризонтално. За вертикално центрирано оформление можете да го направите, като промените свойството на атрибута на NSLayoutAttributeCenterY както за self.view, така и за „ВАШИЯ ИЗГЛЕД“.

person ldindu    schedule 01.08.2014
comment
Благодаря! Няколко въпроса - мога ли да направя кодовия център едновременно в хоризонтална и вертикална ориентация? Също така, къде да поставя горния код? Точно под IBoutlet или някъде другаде? Съжалявам, просто уча бързо! - person rocket101; 02.08.2014
comment
Страхувам се, че не можеш толкова бързо, колкото знам. Трябва да зададете ограничението два пъти за хоризонтално и вертикално центриране. Кодът трябва да бъде поставен в метода viewDidLoad. - person ldindu; 03.08.2014