Пользовательский UITabBarController на iPhone - PullRequest
0 голосов
/ 10 марта 2011

Я относительно новичок в Obj-C и еще не дошел до стадии навигации с закрытыми глазами:)

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

Can't post image due to lack of reputation, click here to see it :)](http://www.samjordan.co.uk/grabs/16845b4daf900c994e95a31a66ecf1f1.png)

Код, который я использовал для получения , можно увидеть в этой сущности .Проблема, с которой я столкнулся, заключается в том, что сенсорное событие не срабатывает.Сначала я подумал, что это потому, что кнопка была в UIImageView, поэтому включил взаимодействие с пользователем, но все равно не повезло!

Буду признателен за любую помощь, которая поможет мне решить эту проблему.Как я уже сказал, я относительно новичок в Obj-C, так что, может быть, я упустил нечто простое!

1 Ответ

0 голосов
/ 11 марта 2011

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

Если это так, вы можете попробовать добавить представление в окно.вместо этого.

Я недавно создал пользовательскую панель вкладок.Вот несколько вещей, которые я узнал:

  1. Вы можете переопределить drawRect в пользовательском подклассе UITabbar (или, возможно, в расширении категории).Однако он ограничен, вы не можете рисовать за пределами панели вкладок.

  2. Вы можете создать подкласс UITabBar и добавить пользовательское подпредставление.Обязательно установите self.clipsToBounds = NO, если ваше подпредставление больше панели вкладок.

  3. UITabbar добавляет свои собственные подпредставления после его создания.

  4. Вы можете подключиться к сенсорным событиям в пользовательском подклассе, установив self.delegate = self и реализовать методы делегата панели вкладок.

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

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