Как связать ibOutlet из subview в пользовательский класс UIView в раскадровке xcode

Я думаю, что это изображение объясняет все. У меня есть подкласс UIView, который я ввел в поле class. Я пытаюсь подключить ibOutlets между раскадровкой и реализацией класса. Это не дает мне ошибки, но и не работает. Это еще одна ошибка xcode, или я ожидаю, что это будет работать так, как это не будет?

enter image description here

3 ответов


вот решение:

1) введите IBOutlet руками в заголовочном файле пример:

@property (strong, nonatomic) IBOutlet ProgressBarElementView *targetProgressElement;

2) перетащите pin код до элемент в зоне контура документа

enter image description here


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

но должен быть лучший способ


чтобы преодолеть упрямство XCode, особенно когда вам нужно подключить различные перечисления из UIControlEvent чем UIControlEventTouchUpInside, Я бы предпочел использовать код непосредственно из пользовательского класса вид:

Свифт

button.addTarget(self, action:#selector(ClassName.handleRegister(sender:)),
                          for: .touchDragExit)

С

[self.button addTarget:self
                action: @selector(buttonTouchDragExitAction:)
      forControlEvents:UIControlEventTouchDragExit];

можно включить такой код в awakeFromNib или viewDidLoad или где это лучше всего подходит.