2016-03-18 2 views
6

私は、UI要素のカスタムクラス(たとえば、ボタン)を作成する方法が不思議でしたか?カスタムUIButtonクラススウィフト

アップルの開発ドキュメントを読んでいて、別の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クラスにその特定のボタンをリンク:

enter image description here

問題は、シミュレータを実行すると、debigコンソールにエラーが表示されることです。

このクラスはキーaButtonに対応するキー値ではありません

私はプロセスがガイドでは簡単だと思っていましたが、追加の手順がありませんか?ありがとう、私に教えてください!

参考までに、私が参考にしたアップルのドキュメントへのリンクです。

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

編集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(); 
    } 
+0

あなたはインターフェイスビルダーでクラスへの出口をフックしようと、それを求めている 'aButton'、しかしクラスをお楽しみくださいあなたはそれを接続しようとしましたが、そのプロパティを持っていません。 – nhgrif

+0

また、プロパティ 'aButton'を持つカスタムコントローラクラスを作成しましたか?ビューコントローラのクラスを設定する必要があります。 – nielsbot

+0

'public'修飾子を削除しようとしています。 –

答えて

3

あなたのコードは大丈夫です。接続エラーだと思います。 ストーリーボードファイルを開き、File's Owner(またはView Controller上部の黄色の円)を選択し、「Connection Inspector」(サイズインスペクタの横にある右上の矢印)をクリックして、すべてのアウトレットを表示しますすぐに。見つからないコンセントを示す!を探してください。

カスタムUIClassesを作成している場合は、IBInspectableIBDesignableをご覧になることをお勧めします。それらについては多くのことがあり、ストーリーボードだけでかなりのことができます。それほどコードはあまりありません。

いくつかの記事:

IBInspectable/IBDesignable - NSHipster

Creating a Custom View That Renders in Interface Builder - Apple

:)

+0

私は、同じボタンのcrtl +ドラッグをアウトレットとしてviewcontrollerのコードに入れました。そして、aButtonにアウトレットがありませんでした。 – rj2700

+0

Brilliant!すべてのことで幸運。 IBDesignablesを見て、彼らはかなりクールです。 – MrHaze

関連する問題