iPhone UITableView перекрывает UITabBar при отображении его в качестве подпредставления - PullRequest
0 голосов
/ 13 июля 2011

У меня есть пользовательский TabViewController, который добавляет подпредставления к текущему виду в зависимости от того, что выбрано UITabBarItem. Для разных подпредставлений я смоделировал панель навигации и панель вкладок, чтобы при их отображении подвиды соответствовали формату. Одно вспомогательное представление, которое содержит UILabel, отображает нормально, однако вспомогательное представление с UITableView перекрывает UITabBar. Однако в Интерфейсном Разработчике я измерил UITableView, чтобы не отрезать UITabBar.

Добавление подпредставления в TabViewController

[self.view addSubview:subViewController.view];

SubView in the interface editor SubView on the Emulator

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Вы не предоставили достаточно информации, чтобы быть уверенным, но я думаю, что вы добавляете табличное представление в неправильное представление. Предполагая, что self является вашим подклассом UITabBarController, вы добавляете пользовательское представление в представление, которое покрывает весь экран, включая панель вкладок.

Вместо этого вы должны добавить пользовательские представления в представление выбранного контроллера представления:

[self.selectedViewController.view addSubview:subViewController.view];

Это ограничит материал, который вы добавляете в область содержимого контроллера панели вкладок, и не будет перекрывать панель вкладок.

Я не уверен, что вы пытаетесь достичь с помощью этого подхода: кажется, что было бы более разумно добавить subViewController к набору контроллеров представления, которым управляет UITabBarController, а не возиться с иерархией представления .

Кроме того, нет ничего плохого в том, чтобы загружать представления из пера, а затем манипулировать ими в коде. «Смешивание стилей» не проблема.

0 голосов
/ 13 июля 2011

Как сказал Леголас, похоже, что вы смешиваете стили здесь. Учитывая, что это звучит так, как будто вам нужно вытолкнуть его из кода, вы можете попробовать полную реализацию объекта из кода, например:

UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(x, y, width, height)];
table.delegate = self; //or whatever the delegate is
table.dataSource = self; //or wherever the datasource is

... затем добавьте его в любой вид.

Если это не помогло, дважды проверьте перо и убедитесь, что у вас установлены правильные параметры для отображения панели вкладок, панели навигации и т. Д., Так как это повлияет на размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...