Мне нужно создать пользовательский компонент пользовательского интерфейса, который будет удовлетворять следующим:Какой суперкласс для пользовательского компонента пользовательского интерфейса?
- будет содержать состав UIViews, этикетки, кнопки и TableView.
- должно быть возможно запрограммировать его программно - или - поместить UIView в редактор nib и изменить класс в инспекторе на мой собственный класс компонентов. (и это будет поддерживать/поддерживать значения основного кадра из размещенного UIView)
Я уже начал экспериментировать с этим, я выбрал UIView, но он не обрабатывает метод ячейки .cellForRow .... С другой стороны, если я использую UIViewController, то изменение моего класса в инспекторе не работает, и приложение выходит из строя.
Какой из них выбрать - UIView, UIviewController или NSObject?
Если вы наследуете NSObject, все функции UIView и т. Д. Не могут быть получены. Я бы сказал, прости меня от самого низкого уровня, а затем использовать протоколы для использования других методов/особенностей/поведения. –
В этом случае я бы наследовал от UITableView, поскольку это самый сложный UIItem, и поэтому большинство интерфейсов уже определены. UIView тоже будет работать, потому что это общая основа для всех. Но тогда необходимо добавить все (необходимые) дополнительные методы и свойства UIButton, UILabel и UITableView. Таким образом, в конечном итоге это зависит от того, какие интерфейсы требуется новому объекту представления, и к которым они должны быть перезаписаны. Тогда я бы пошел за тем, где большинство из них не нужно перезаписывать в подклассе и их можно использовать только как они есть. –
Ваш объект не должен обрабатывать cellForRowAtIndexPath :, или любой из других методов источника данных - в представлении таблицы нет. Это должно обрабатываться контроллером, которому вы назначаете источник данных и делегировать свой объект, который, вероятно, будет контроллером, чей вид имеет ваш пользовательский объект в качестве подзадачи. Я думаю, UIView - правильный суперкласс. – rdelmar