Ios ui查看/UIControl忽略帧矩形。总是全屏
我正在尝试在Swift 2.2中构建自定义组件,但显然缺少一些必要的东西。我的视图忽略了帧矩形 在包含视图中,我以编程方式添加视图,如下所示:Ios ui查看/UIControl忽略帧矩形。总是全屏,ios,uiview,swift2,Ios,Uiview,Swift2,我正在尝试在Swift 2.2中构建自定义组件,但显然缺少一些必要的东西。我的视图忽略了帧矩形 在包含视图中,我以编程方式添加视图,如下所示: let arrowControl = ArrowControl(frame: CGRect(x: 100 , y: 100, width: 300, height: 300)) self.view.addSubview(arrowControl) 事实上,即使我以编程方式添加UIView或UIControl,而不将其子类化,那么视图将忽略帧rect,并
let arrowControl = ArrowControl(frame: CGRect(x: 100 , y: 100, width: 300, height: 300))
self.view.addSubview(arrowControl)
事实上,即使我以编程方式添加UIView或UIControl,而不将其子类化,那么视图将忽略帧rect,并占据整个屏幕
以下是我的自定义视图的基本部分:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
override func layoutSubviews() {
super.layoutSubviews()
renderComponent(frame)
}
编辑>>>
如果我更改我的示例并删除renderComponent,我仍然会遇到同样的问题
override func layoutSubviews() {
super.layoutSubviews()
self.clipsToBounds = true
backgroundColor = UIColor.yellowColor()
// renderComponent(self.frame)
}
或者,即使执行以下操作,也会忽略帧矩形,并给我一个全屏颜色块:
let test = UIView(frame: CGRect(x: 100 , y: 100, width: 300, height: 300))
test.backgroundColor = UIColor.redColor()
self.view.addSubview(test)
啊!我算出来了。原来是我自己的错,因为我在包含视图中实现了以下内容:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
for view in self.view.subviews {
view.frame = UIScreen.mainScreen().bounds
}
}
你的renderComponent方法在做什么?或者您可以尝试将clipTobounds或markToBound属性设置为true,以查看是否有帮助。如果我更改示例并删除renderComponent,我仍然会遇到同样的问题。请参见上述问题中的编辑。