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.
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)
użycie UILabel zamiast UIImageView
func setUpView() {
let label = UILabel(frame: CGRectMake(0, 0, 50, 50))
label.text = "text"
addSubview(label)
}
wyniku:
Try aby ustawić ramkę w 'setUpView()', ramka 'UIView' ma domyślnie 0,0 – zisoft
Ale UILabel działała ... – tounaobun
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