Naprawdę potrzebuję strony tutaj. Stworzyłem podklasę @IBDesignable UILabel, która działa poprawnie w XCode Interface Builder. Jednak nawet jeśli ustawię 'clipsToBounds' na false, Konstruktor interfejsów nadal będzie go przycinał podczas zmiany właściwości @IBInspectable.Konstruktor interfejsów Obcinanie obrazów Możliwe do wyświetlenia
Jeśli korzystam z aplikacji na symulatorze lub urządzeniu, UILabel nie jest przycinany i daje pożądane wyniki (przy jednoczesnym zachowaniu wartości, które ma Builder interfejsu).
przed zmianą (The subviews są widoczne)
po zmianie interfejs startowego (W subviews są poza zasięgiem)
po zmianie w symulatorze (Subviews są zgodne z oczekiwaniami)
Każda pomoc zostanie ogromnie doceniona. Kod dla klasy niestandardowej znajduje się poniżej.
@IBDesignable class UIFeaturedLabel: UILabel {
@IBInspectable var borderWidth: Float = 4
@IBInspectable var borderOffsetX: Float = 15
@IBInspectable var borderOffsetY: Float = 5
@IBInspectable var borderColor: UIColor = UIColor.whiteColor()
private var headerView:UIView!
private var footerView:UIView!
override init() {
super.init()
createViews()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
createViews()
}
override init(frame: CGRect) {
super.init(frame: frame)
createViews()
}
func createViews() {
clipsToBounds = false
layer.masksToBounds = false
headerView = UIView()
footerView = UIView()
headerView.backgroundColor = UIColor.whiteColor()
footerView.backgroundColor = UIColor.whiteColor()
addSubview(headerView)
addSubview(footerView)
}
override func layoutSubviews() {
super.layoutSubviews()
let left = CGFloat(-borderOffsetX)
let right = CGFloat(frame.width + CGFloat(borderOffsetX*2))
let top = CGFloat(-borderOffsetY)
let bottom = CGFloat(frame.height - CGFloat(borderWidth/2)) + CGFloat(borderOffsetY)
headerView.frame = CGRectMake(left, top, right, CGFloat(borderWidth))
footerView.frame = CGRectMake(left, bottom, right, CGFloat(borderWidth))
}
}
Właśnie trafiłem to, myślę, że to jest kolejny błąd w Xcode. Ten minimalny przykład http://stackoverflow.com/a/25475536/539149 nie działa w Kreatorze interfejsów od Xcode 7.2 (7C68). –