Я вложил в класс UITableViewController и назвал его FeaturedGamesViewController.Хорошо, у меня также есть контроллер навигации, к которому я добавил этот FeaturedGamesViewController в качестве корневого.Все довольно стандартные вещи, которые вы делаете в App Delegate.
Также обратите внимание, что для FeaturedGamesViewController не создано ни одного NIB-файла.Простое наследование UITableViewController и вызов initWithStyle устанавливает стиль таблицы и автоматически устанавливает dataSource, делегат и размер.Источник данных и делегат, очевидно, установлены в FeaturedGamesViewController.
- (id)init
{
// Вызвать назначенный инициализатор суперкласса [super initWithStyle: UITableViewStyleGrouped];
}
Хорошо, вы видите, что я установил размер таблицы "Сгруппированный".В альбомной ориентации на моем iPad он имеет около 20 пикселей пространства сверху, слева и справа (извините, я не могу опубликовать снимок экрана, потому что я здесь новичок, и система не позволит мне, пока я не наберу определенное количество баллов)
Я этого не хочу!Это альбом, поэтому я ожидаю, что он заполнит все пространство между панелью навигации и панелью вкладок ниже.Хуже всего то, что я подделал сетку с помощью пользовательского UITableViewCell, но пространство слева и справа сделало его таким, чтобы при щелчке по этому пространству выделялась вся строка, таким образом, выдавая ощущение, что это сетка.
Теперь я решил изменить размер табличного представления в viewDidLoad или что-то еще, но я не знаю как.Я не могу сделать initWithFrame из-за потенциальных утечек памяти (и, возможно, сброса уже установленных свойств dataSource, делегата и autoresizeMask), поэтому должен быть установщик или что-то, что сбрасывает источник представления таблицы прямо под панелью навигации и заполняет всеэкран размером 1024х748.Как вы динамически сбрасываете размер представления таблицы?
Тогда я очень расстроился и решил сделать это с помощью файла Nib. Таким образом, я могу установить ориентацию на альбомную и установить симулированную навигацию иПереместите вкладки и заполните оставшееся пространство табличным представлением.Это сработало!Если вам интересно, как создать табличное представление с пером после того, как вы создали подкласс UITableViewController БЕЗ кончика, вот как:
http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html#//apple_ref/doc/uid/TP40007451-CH6-SW10
Перейдите к абзацу прямо перед «СозданиеТабличное представление программно ".
ОК, когда я это сделал, мой альбомный вид" сетки "выглядит заполняющим все пространство между панелью навигации вверху и панелью вкладок внизу, как я и хотел.
Я возился с этим еще немного, и я обнаружил, что в моей версии "non nib" (проблемной) я установил стиль таблицы как "сгруппированный".Когда я изменил его на "обычный", это сработало !!!Но вот в чем дело: в версии nib «сгруппированный» или «обычный» дает правильную компоновку с таблицей, занимающей все пространство.Итак, что дает?
Извините за длинный вопрос, но я думаю, что я спрашиваю:
1) Как программно сбросить размер табличного представления, не вызывая потенциальных утечек памяти и не влияядругие свойства, уже установленные для вас (например: dataSource, делегат, autoResizeMask - они установлены для вас только потому, что вы подклассифицировали UITableViewController)?
2) Как вы делаете это для любого представления в целом?
3) Почему «простой» стиль заполняет макет по желанию, тогда как «сгруппированный» стиль дает странный макет.Обратите внимание, что это не проблема в версии Nib.
Спасибо за ваше терпение!