我有一個自定義UIView
子類,我想添加作爲我的UIViewController
子視圖。問題是,即使所有設置都正確(在viewDidLoad
視圖具有正確的框架,而不是hidden
),並且它在Interface Builder(picture)中顯示,但運行該應用程序時仍未顯示視圖。在設備上,我只看到一個紅色的屏幕,中間沒有三角形。iOS - 自定義UIView不顯示在設備上
這裏的視圖子類:
@IBDesignable
class TriangleView: UIView {
override func drawRect(rect: CGRect) {
super.drawRect(rect)
let path = UIBezierPath()
let width = rect.size.width
let height = rect.size.height
let startingPoint = CGPoint(x: center.x, y: center.y - height/2)
path.moveToPoint(startingPoint)
path.addLineToPoint(CGPoint(x: center.x + width/2, y: center.y - height/2))
path.addLineToPoint(CGPoint(x: center.x, y: center.y + height/2))
path.addLineToPoint(CGPoint(x: center.x - width/2, y: center.y - height/2))
path.closePath()
let shapeLayer = CAShapeLayer()
shapeLayer.frame = rect
shapeLayer.position = center
shapeLayer.path = path.CGPath
shapeLayer.fillColor = UIColor.whiteColor().CGColor
layer.mask = shapeLayer
layer.backgroundColor = UIColor.redColor().CGColor
}
}
我沒有任何其他的代碼顯示,我只是認爲添加到ViewController
並設置其約束和類TriangleView
。
如果你設置一個斷點您的自定義視圖的drawRect,將它的調試器停止? – heximal
是的,一切都按原樣運作,它只是不顯示。忘了提及,在代碼中添加視圖也不起作用。 – smeshko
您是否嘗試過使用Xcode中的Debug View Hierarchy特性來檢查運行時的視圖? – heximal