Пользовательский класс UIButton swift

Мне было любопытно, как создать пользовательский класс для элемента пользовательского интерфейса (скажем, например, кнопку)?

Я прочитал документы разработки Apple, и я выполнил инструкции, я думал, что должен создать отдельный файл класса UIButton и связать этот файл класса для всех кнопок на раскадровке.

Здесь отдельный код класса UIButton (файл с именем buttonz.swift):

import UIKit

public class buttonz: UIButton {


    required public init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        self.layer.borderWidth = 1
        self.backgroundColor = UIColor.whiteColor()
        self.layer.borderColor = UIColor.blackColor().CGColor

    }

}

И на раскадровке я связал эту конкретную кнопку с новым классом UIButton:

введите описание изображения здесь

Проблема в том, что когда я запускаю симулятор, это дает мне ошибку в консоли debig:

этот класс не является ключевым значением, совместимым с кодировкой для ключа aButton

Я думал, что процесс был прост в руководстве, но не хватает ли каких-либо дополнительных шагов? Пожалуйста, дайте мне знать, спасибо!

Для справки, вот ссылка на документы Apple, которые я использовал в качестве руководства.

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson5.html

Edit 1 - Здесь ссылка действия на viewcontroller.swift для контроллера вида. Я просто ctrl + перетащил кнопку из панели рассказов в viewcontroller.swift.

 @IBAction func a(sender: AnyObject) {
        var alertView = UIAlertView();
        alertView.addButtonWithTitle("Ok");
        alertView.title = "title";
        alertView.message = "message";
        alertView.show();
    }
+6
источник поделиться
1 ответ

Ваш код выглядит нормально, я думаю, что это ошибка соединения. Откройте файл раскадровки, выберите File Owner (или желтый круг сверху контроллера представления) и нажмите "Инспектор подключения" (стрелка в правом верхнем углу, которая находится рядом с инспектором размера), чтобы увидеть все розетки сразу. Найдите !, который указывает на отсутствие выхода.

Если вы создаете пользовательские UIClasses, я бы предложил взглянуть на IBInspectable и IBDesignable s, о них много, и вы можете сделать довольно много всего через раскадровки, и это не измените свой код так сильно.

Некоторые статьи:

IBInspectable/IBDesignable - NSHipster

Создание пользовательского представления, которое визуализирует в построителе интерфейса - Apple

Наслаждайтесь:)

+3
источник

Посмотрите другие вопросы по метке или Задайте вопрос