Когда я добавляю подпредставление к 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}
Я должен что-то здесь упустить.
Спасибо.