#iphone #ios #interface-builder #xib #nib
#iPhone #iOS #конструктор интерфейса #xib #перо
Вопрос:
При просмотре некоторых из WWDC2011 videos
них упоминалось, что из-за большого nib files
размера загрузка вашего приложения может занять некоторое время. Это не обязательно относится к моему приложению, но я чувствую nib
, что оно довольно большое. Предложение в видео состояло в том, чтобы превратить этот большой nib
файл в несколько меньших для быстрой загрузки.
Может быть, я что-то упускаю, но как мне разделить большой nib
файл на более мелкие? Мой загрузит только один, когда он инициализируется. UIViewController
nib
Есть ли другой способ сделать это с несколькими файлами?
Ответ №1:
Как вы отметили, вы можете инициализировать a UIViewController
с указанным кончиком, чтобы загрузить его view
свойство, и это только один файл. Однако вам не нужно упаковывать все вложенные представления вашего view
свойства в один и тот же файл nib. Если у вас есть некоторые подвиды, которые видны только некоторое время, рассмотрите возможность разделения их на собственные файлы nib и загрузки их по требованию с помощью UINib
. Если у вас есть набор UITableViewCell
подклассов или плиток для UIScrollView
содержимого a, вы, вероятно, захотите иметь возможность загружать только те экземпляры view, которые вам действительно нужны, а не массивный файл, содержащий посторонние представления (например, загрузка всех ячеек вашей таблицы, когда вы используете только один из них).).
Комментарии:
1. Хорошо, использование UINib звучит как хорошая идея. Итак, если у меня есть UIView в другом файле nib, я могу просто вызвать [UINib nibWithNibName:@»DetailView» bundle:nil]; и он вернет мой объект UIView?
2. Нет.
nibWithNibName:bundle:
вернет объект UINib. Затем вы можете вызвать-instantiateWithOwner:options:
этот экземпляр UINib, который возвращает массив всех объектов верхнего уровня, найденных в nib, и связывает любые привязки с указанным вами «владельцем». При необходимости вы можете получить объекты из своего nib из этого массива, но я предпочитаю передать владельца, который будет иметь некоторое свойство, привязанное к объекту, загруженному из nib. ( developer.apple.com/library/IOS/#documentation/UIKit/Reference /… )