Проблемы с получением UIView sizeToFit для выполнения ничего значимого

Когда я добавляю вложенное представление в UIView , или когда я изменяю размер существующего вложенного представления, Я ожидаю, что [view sizeToFit] и [view sizeThatFits] отразят это изменение. Однако, по моему опыту, sizeToFit ничего не делает, а sizeThatFits возвращает то же значение до и после изменения.

В моем тестовом проекте есть одно представление, содержащее одну кнопку. Щелчок по кнопке добавляет другую кнопку в представление, а затем вызывает sizeToFit в содержащем представлении. Границы представления сбрасываются в консоль до и после добавления подпредставления.

- (void) logSizes {
 NSLog(@"theView.bounds: %@", NSStringFromCGRect(theView.bounds));
 NSLog(@"theView.sizeThatFits: %@", NSStringFromCGSize([theView sizeThatFits:CGSizeZero])); 
}

- (void) buttonTouched { 
 [self logSizes];
 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 btn.frame = CGRectMake(10.0f, 100.0f, 400.0f, 600.0f);
 [theView addSubview:btn];
 [theView sizeToFit];
 [self performSelector:@selector(logSizes) withObject:nil afterDelay:1.0];
}

И вывод такой:

2010-10-15 15:40:42.359 SizeToFit[14953:207] theView.bounds: {{0, 0}, {322, 240}}
2010-10-15 15:40:42.387 SizeToFit[14953:207] theView.sizeThatFits: {322, 240}
2010-10-15 15:40:43.389 SizeToFit[14953:207] theView.bounds: {{0, 0}, {322, 240}}
2010-10-15 15:40:43.391 SizeToFit[14953:207] theView.sizeThatFits: {322, 240}

Мне здесь что-то не хватает.

Спасибо.

36
задан Kampai 11 August 2014 в 18:14
поделиться