2016-03-18 41 views
6

Bir UI öğesi için özel bir sınıfın nasıl oluşturulacağını merak ettim (örneğin, bir düğme gibi)?Özel UIButton sınıfı hızlı kaydırma

Apple geliştirme belgelerini okudum ve talimatları izledim, düşündüğüm şey ayrı bir UIButton sınıf dosyası oluşturmak ve bu sınıf dosyasını film şeridindeki tüm düğmeler için bağlamaktı.

enter image description here

:

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 

    } 

} 

Ve film şeridinde

, ben yeni UIButton sınıfına belirli düğmeye bağlantılı:

İşte (dosya adında buttonz.swift) ayrı UIButton sınıf kodu Sorun şu ki, simülatörü çalıştırdığımda, bu hata konsol konsolunda bir hata veriyor:

bu sınıftır değil kodlama uyumlu

aButton anahtar için ben süreci kılavuzunda basit olduğunu düşündüm ama herhangi ekstra adımlar eksik anahtar değeri? Lütfen bana bildirin, teşekkür ederim!

Başvuru için, burada bir kılavuz olarak kullandığım Apple belgelerine bağlantı var.

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

Düzenleme 1 - İşte görünüm denetleyicisi için viewcontroller.swift eylem bağlantı. Sadece ctrl + story board'dan butonu viewcontroller.swift'e sürükledim.

@IBAction func a(sender: AnyObject) { 
     var alertView = UIAlertView(); 
     alertView.addButtonWithTitle("Ok"); 
     alertView.title = "title"; 
     alertView.message = "message"; 
     alertView.show(); 
    } 
+0

Sen arayüz oluşturucu bir sınıfa bir çıkış bağlamak denedim ve çağrıda 'aButton' Ancak sınıf Enjoy O mülke sahip olmamak için onu bağlamayı denedin. – nhgrif

+0

ayrıca "aButton" özelliği ile özel bir denetleyici sınıfı oluşturdunuz mu? Görünüm denetleyici sınıfınızı da ayarlamanız gerekecek. – nielsbot

+0

'public' değiştiricisini kaldırmaya çalışın. –

cevap

3

Kodunuz iyi görünüyor, bence bir bağlantı hatası. Hikaye panosu dosyanızı açın, tüm çıkışları görmek için File's Owner (veya görünüm denetleyicinin üstündeki sarı daire) 'yi seçin ve "Bağlantı Denetçisini" (boyut denetçisinin yanındaki sağ üstteki ok) tıklayın. bir kerede. Eksik bir çıkışı gösteren ! s değerini arayın.

ben IBInspectable s ve IBDesignable s bakmak zorunda öneririm özel UIClasses oluşturuyorsanız, orada onlar hakkında bir çok şey var ve sadece storyboardlar yoluyla biraz yapabilmenize olanak tanımak ve bu değişmez senin Tüm bu kadar kod.

Bazı makaleler:

IBInspectable/IBDesignable - NSHipster

Creating a Custom View That Renders in Interface Builder - Apple

:)

+0

Bu yüzden aynı düğmenin bir crtl + sürüklemesini bir çıkış olarak viewcontroller'ın koduna yaptım ve aButton'un bir çıkış noktasını kaçırdığını anladıktan sonra iyi görünüyordu, teşekkürler! – rj2700

+0

Parlak! Hepinize iyi şanslar. IBDesignables'a bak, oldukça havalı. – MrHaze