2015-02-13 6 views
1

Если какие-либо элементы UIElements добавлены в классы размера, то подвидные объекты не будут частью подвид представлений родительских представлений до их загрузки.Класс размера - странное поведение

enter image description here

Код:

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSLog(@"sub VIews %@", self.view.subviews); 

} 

Результат:

2015-02-13 13: 52: 16,113 TestAutolayout [1619: 42189] суб Фототуров ( "< _UILayoutGuide: 0x7fcc8bd9ded0; frame = (0 0; 0 0); hidden = YES; layer => ", " < _UILayoutGuide: 0x7fcc8bd9eb60; frame = (0 0; 0 0); hidd en = ДА; Слой =>»)

После того, как его загрузке, примерил кнопки события: Код:

- (IBAction)btnTest:(id)sender { 
    NSLog(@"sub VIews %@", self.view.subviews); 

} 

Результат:

enter image description here

Таким образом, вопрос, почему вид. subViews не нарисованы до его загрузки?.

Примечание: Если мы добавили UIElements в любой класс любого класса, он будет работать нормально.

+0

У меня такая же проблема. Есть ли какое-либо официальное решение к настоящему времени или вы все еще используете обходное решение layoutIfNeeded(), опубликованное ниже? – Mehlyfication

ответ

0

Я разрешил его, вынудив нарисовать UIElements, используя [self.view layoutIfNeeded], прежде чем он загрузится.

- (void)viewDidLoad { 

    [self.view layoutIfNeeded]; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSLog(@"sub VIews %@", self.view.subviews); 

} 

Может быть причиной эффективности работы.

Смежные вопросы