Могу ли я определить UIView как переменную в Objective-C? - PullRequest
0 голосов
/ 02 октября 2009

Согласно документам, которые я прочитал, они всегда показывают, что я должен определить подпредставление в классе. Как это:

@interface PolygonView : UIView.

Я должен наследовать от UIView.

Могу ли я определить переменную с типом UIView в классе, который наследуется от NSObject? После этого я устанавливаю соединение из этой переменной в UIView, который определен в Интерфейсном Разработчике. Проблема в том, что я не могу переопределить - (void)drawRect:(CGRect)rect

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Как правило, вы будете делать что-то вроде этого

@interface MyView : UIView {
// Declare IBOutlets here if you wish or other instance variables you may need
}
@end

@implementation MyView

- (void)drawRect:(CGRect)rect {
// Drawing stuff
}

А затем в Интерфейсном Разработчике создайте представление (обычно путем создания View XIB или путем перетаскивания объекта Custom UIView на (ну, в) другой UIView в XIB, таким образом делая его подпредставлением), а затем на панели инспектора. , установите его класс, чтобы быть MyView. Затем вы можете подключить любые IBOutlets, которые вы определили в объявлении интерфейса MyView.

0 голосов
/ 02 октября 2009

Да, вы можете определить переменную в простом подклассе NSObject, который указывает на UIView. Но если вы это сделаете, конечно, вы не сможете переопределить drawRect: - этот объект просто имеет ссылку на UIView, это не само представление. Это очень похоже на то, что у вас может быть переменная типа int, но это не означает, что объект, содержащий эту переменную, является целым числом.

Если вы хотите переопределить чертеж вида, вам необходимо создать вид. У вас все еще может быть отдельный класс, который взаимодействует с вашим подклассом UIView извне.

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