У меня есть UITableView с пользовательской строкой. В моем пользовательском ряду у меня есть UILAbel с авторазмером по маске ширины, поэтому в портретной ориентации он имеет одну ширину, а в альбомной - другую.
В моем cellForRowAtIndexPath я должен получить ширину метки:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
(NSIndexPath *)indexPath {
UILabel *myLabel =
(UILabel *)[cell viewWithTag:2];
float width = myLabel.frame.size.width;
}
И когда я запускаю приложение, все в порядке и ширина хорошая. Но когда я поворачиваю устройство в альбомную ориентацию, cellForRowAtIndexPath вызывается до того, как UILAbel меняет свой кадр, и я получаю ту же ширину, что и в портретной ориентации. Так как быть? Как получить правильную ширину при повороте устройства? Одна мысль, которая приходит мне в голову, это перезагрузить tableView в didRotateForInterfaceOrientation ... Есть ли другие решения? Спасибо ...
UPDATE:
Еще одна вещь, когда я запускаю приложение в альбомном режиме, ширина все равно, как в портретном. Зачем ? Как это исправить?