2016-08-16 6 views
-2

В Identity Inspector я хочу установить собственный класс для моего UIButton. Таким образом, я создаю свой собственный класс, который является UIView, но мой пользовательский класс не отображается в списке. В противном случае, если я добавлю UIView, в списке отображаются самые классные категории UIButton.Пользовательский вид класса для UIButton

Если UIButton подкласс UIView, а не UIView является UIButton, почему это возможно, и поэтому я не могу использовать мой UIView пользовательский класс для представления моего UIButton?

+0

Я бы не рекомендовал подклассов UIButton, но если вы хотите сделать это в любом случае, создать свой customClass унаследовал от UIButton, а не UIView. Тогда он появится в инспекторе идентификации – NSNoob

ответ

2

Я не совсем уверен, что вы имеете в виду, но я пойду.

Ваш вопрос ...

Если UIButton подкласс UIView, а не UIView является UIButton, почему это возможно, и поэтому я не могу использовать свой UIView пользовательский класс для представления моего UIButton.

Я считаю, что вы говорите ...

  1. UIButton подкласс UIView.
  2. Ваш пользовательский вид является подклассом UIView.
  3. Почему вы не можете установить UIButton, чтобы быть вашим пользовательским видом?

Это правильно?

Если да, то это довольно ясно. Просто потому, что они получены из одного и того же класса, это не значит, что они связаны между собой. A UILabel также получена от UIView, но очень отличается.

Если вы хотите создать пользовательский подкласс UIButton тогда ваш пользовательский класс должен извлечь из UIButton ...

Вы должны иметь ...

@interface YourSubclass: UIButton 

Вместо того, чтобы ...

@interface YourSubclass: UIView 

Выполнение этого приведет к созданию пользовательского подкласса в инспекторе идентификации в построителе интерфейса.

+0

Хорошо, я понимаю, и в списке UIView я показываю UIButton, потому что это подкласс uf UIView. Извините за простой вопрос, я новичок – ndPPPhz

+1

@ndPPPhz не сожалею :) Каждый должен учиться :) – Fogmeister

1

Вы можете создать собственный подкласс для UIButton. Затем установите его как пользовательский класс для любой кнопки.

class CCButton: UIButton { 

    /* 
    // Only override drawRect: if you perform custom drawing. 
    // An empty implementation adversely affects performance during animation. 
    override func drawRect(rect: CGRect) { 
     // Drawing code 
    } 
    */ 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 
     createBorder() 
    } 

    required override init(frame: CGRect) { 
     super.init(frame: frame) 
     createBorder() 
    } 

    private func createBorder(){ 
     //Define Layer 
     self.layer.cornerRadius = 8.0 
     self.layer.masksToBounds = true 
    } 
} 
Смежные вопросы