Очень важно, если вы решили часть рутинных операций возложить на такой удобный инструмент как Interface Builder не забывать об одном правиле. Каждый объект, который создаётся не динамически в коде (например smthObject = [[SmthClass alloc] initWith... ]), а создан с помощью Interface Builder, каждый такой объект должен иметь своего хозяина (разве что главный делегат приложения гарантированно работает по умолчанию).
То есть любой ваш объект (созданный с помощью Interface Builder) должен принадлежать кому-нибудь как IBOutlet-переменная. Я убеждался в этом уже много раз на практике. Иначе происходят падения программы при попытке заставить этот объект что-либо сделать, из-за того, что у этого объекта (если он не принадлежит никому как IBOutlet-переменная) например вызывается метод, а объект вроде не существует (раз ни к кому не принадлежит). Может быть гуру-программисты дадут более точное объяснение этому явлению...
Показаны сообщения с ярлыком interface builder. Показать все сообщения
Показаны сообщения с ярлыком interface builder. Показать все сообщения
суббота, 4 февраля 2012 г.
воскресенье, 4 июля 2010 г.
Высота стандартных iPhone-контролов по умолчанию
При разработке iPhone-приложений высота контролов по умолчанию:
Status Bar: 20px
Navigation Bar: 44px
Tab Bar: 50px
Если не ошибаюсь, аналогичная высота и у iPad-контролов.
Помнить эти значения приходится каждый раз, когда вы запихиваете в UIView всякие UITableView и прочие окошки.
Всё-таки Interface Builder при некоторых своих косяках даёт экономию времени (создавать контролы руками через код иногда бывает крайне необходимо, но это в любом случае приходится дольше делать, чем делать несколько движений мышкой в Interface Builder'e - ну и кроме того, снимается ряд головняков, например таких как контроль над утечками памяти программно создаваемых контролов). Особенно я люблю Interface Builder за возможность быстро создать взаимосвязи между контролами и функциями-обработчиками (где в качестве возвращаемого типа указываем IBAction).
Так вот - в ряде случаев применение Interface Builder'а позволяет значительно упростить задачу создавать в одном Xcode-проекте приложение сразу и для iPhone и для iPad (просто для разных экранов работаете мышкой с одноимёнными xib-файлами - поверьте, получается быстрее, чем вручную писать каждый раз if-else или #ifdef ТАКОЙ_ТО_ТИП_ДЕВАЙСА).
Status Bar: 20px
Navigation Bar: 44px
Tab Bar: 50px
Если не ошибаюсь, аналогичная высота и у iPad-контролов.
Помнить эти значения приходится каждый раз, когда вы запихиваете в UIView всякие UITableView и прочие окошки.
Всё-таки Interface Builder при некоторых своих косяках даёт экономию времени (создавать контролы руками через код иногда бывает крайне необходимо, но это в любом случае приходится дольше делать, чем делать несколько движений мышкой в Interface Builder'e - ну и кроме того, снимается ряд головняков, например таких как контроль над утечками памяти программно создаваемых контролов). Особенно я люблю Interface Builder за возможность быстро создать взаимосвязи между контролами и функциями-обработчиками (где в качестве возвращаемого типа указываем IBAction).
Так вот - в ряде случаев применение Interface Builder'а позволяет значительно упростить задачу создавать в одном Xcode-проекте приложение сразу и для iPhone и для iPad (просто для разных экранов работаете мышкой с одноимёнными xib-файлами - поверьте, получается быстрее, чем вручную писать каждый раз if-else или #ifdef ТАКОЙ_ТО_ТИП_ДЕВАЙСА).
Ярлыки:
высота,
контрол,
interface builder,
ipad,
iphone,
navigation bar,
status bar
вторник, 27 апреля 2010 г.
Как удалить badge-кружочки из TabBar вкладок
Стоит только написать хоть что-нибудь в поле Badge для TabBar в Interface Builder и после этого даже если вы удалите все символы из этого поля, вам уже не удастся избавиться от появившихся badge-кружочков (которые будут пустыми, без строк, но всё равно мозолящими глаза в случае их ненадобности).
Оказывается, можно их удалить, если открыть xib-файл в виде текста (в любимом текстовом редакторе для правки кода). Этот xib-файл есть не что иное, как xml-файл. Сохраните на всякий случай копию оригинального xib-файла. Найдите в оригинале все нужные вам строки, в которых содержится слово badge и удалите их. Если кого заинтересует, напишу сюда более подробно. Дело в том, что изначально этих строк не было, пока вы не ввели хотя бы один символ в bagde-поле, используя Interface Builder.
Оказывается, можно их удалить, если открыть xib-файл в виде текста (в любимом текстовом редакторе для правки кода). Этот xib-файл есть не что иное, как xml-файл. Сохраните на всякий случай копию оригинального xib-файла. Найдите в оригинале все нужные вам строки, в которых содержится слово badge и удалите их. Если кого заинтересует, напишу сюда более подробно. Дело в том, что изначально этих строк не было, пока вы не ввели хотя бы один символ в bagde-поле, используя Interface Builder.
Подписаться на:
Сообщения (Atom)