2014-11-06 11 views
5

Chcę niestandardowy UIView 5-gwiazdkowy, również chcę, aby renderować w storyboard. Dlatego postanowiłem użyć @IBDesignable i @ IBInspectable. Poniżej znajduje się mój kod.Swift IBDesignable widok nie jest wyświetlany w serii ujęć

import UIKit 

@IBDesignable 
class RatingView: UIView { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 

     setUpView() 
    } 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     setUpView() 
    } 

    func setUpView() { 

     let imageView = UIImageView(frame:CGRectMake(0, 0, 50,50)) 
     imageView.image = UIImage(named: "star") 

     addSubview(imageView) 
    } 
} 

A potem w moim ujęć, ja ciągnąć UIView do mojego płótnie i ustawić niestandardową klasę do mojego widoku niestandardowego jako RatingView.The kompilatora zaczyna storyboard skompilować plik i po prostu czekać na widok niestandardowy być renderd na płótnie. Oto zrzut ekranu. enter image description here

Stan jest "aktualny", ale widok nie został renderd. Widok jest tylko biały, chcę zobaczyć obrazek dodany do widoku rodzica. Gdy używam UILabel zamiast UIImageView, etykieta jest renderd na płótnie, ale nie UIImageView, jak mogę uczynić mój piękny gwiazda zdjęcie w moim płótnie. (Images.xcassets został star.png plik)

enter image description here

użycie UILabel zamiast UIImageView

func setUpView() { 

    let label = UILabel(frame: CGRectMake(0, 0, 50, 50)) 
    label.text = "text" 
    addSubview(label) 
} 

wyniku: enter image description here

+0

Try aby ustawić ramkę w 'setUpView()', ramka 'UIView' ma domyślnie 0,0 – zisoft

+0

Ale UILabel działała ... – tounaobun

+0

Zrozumiałaś? Mam ten sam problem - tylko biały w Storyboard. Mam właściciela pliku i klasę niestandardową ustawioną na klasę, którą można przypisać. Mówi "na bieżąco". ale nic się nie pokazuje. – KML

Odpowiedz

Powiązane problemy