Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ui查看/UIControl忽略帧矩形。总是全屏_Ios_Uiview_Swift2 - Fatal编程技术网

Ios ui查看/UIControl忽略帧矩形。总是全屏

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,并

我正在尝试在Swift 2.2中构建自定义组件,但显然缺少一些必要的东西。我的视图忽略了帧矩形

在包含视图中,我以编程方式添加视图,如下所示:

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,我仍然会遇到同样的问题。请参见上述问题中的编辑。