У меня есть UITableView, который не изменяется с правильной настройкой с помощью autoresizeMask (в iPhone 3.0).Неверный размер UITableView с использованием autoresizingMask
UITableView находится внутри UIViewController внутри UINavigationController внутри UITabBarController, все из которых создаются программно. Строка состояния видна.
код в UIViewController в основном:
- (void)loadView {
UIView* rootView = [[UIView alloc] init];
self.view = rootView;
[rootView release];
}
- (void)viewDidLoad {
[super viewDidLoad];
// table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-20-49-44)];
table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)]; table.autoresizingMask = UIViewAutoresizingFlexibleHeight;
[self.view addSubview:table];
}
Когда создается как это, UITableView немного больше, чем доступное пространство. Если я не ошибаюсь, это ровно 44 пикселя больше, размер панели навигации.
Однако, если я раскомментирую прокомментированную строку и прокомментирую следующую строку, размер UITableView будет правильным. Я бы предпочел использовать autoresizingMask вместо того, чтобы вручную вычислять размер UITableView. Что я делаю не так?
Спасибо заранее!
Спасибо за быстрый ответ, Колин. Маска авторезистирования делает что-то. Вид таблицы создается с размером 320x100, и все же он заполняет весь экран. Я могу изменить 100 до 200, и размер будет таким же. – hpique
И если вы не установите маску авторезистирования, но все же установите ее на 320x100, она не заполняет весь экран? –
Правильно. При отсутствии маски автоматической настройки вид таблицы будет соответствовать размеру кадра. – hpique