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 为什么可以';我是否更改视图';Swift的帧大小是多少?_Ios_Swift_Uiview_Frame - Fatal编程技术网

Ios 为什么可以';我是否更改视图';Swift的帧大小是多少?

Ios 为什么可以';我是否更改视图';Swift的帧大小是多少?,ios,swift,uiview,frame,Ios,Swift,Uiview,Frame,这是我遇到的最奇怪的事情 我在UIViewController上的UIView上添加了一个简单的UIView。我将大小更改为200 x 200,然后我想通过将这行代码放在viewDidLoad方法中来更改UIView的大小: self.gameBackgroundView.frame.size.height = 10 这在斯威夫特看来很正常。不过,什么也没发生。我可以改变颜色,角半径等 编辑: 我还删除了该视图中的所有约束,但它仍然不起作用。这是因为自动布局,但是,您可以在自动布局完成其工作后

这是我遇到的最奇怪的事情

我在
UIViewController
上的
UIView
上添加了一个简单的
UIView
。我将大小更改为200 x 200,然后我想通过将这行代码放在
viewDidLoad
方法中来更改
UIView
的大小:

self.gameBackgroundView.frame.size.height = 10
这在斯威夫特看来很正常。不过,什么也没发生。我可以改变颜色,角半径等

编辑:


我还删除了该视图中的所有约束,但它仍然不起作用。

这是因为自动布局,但是,您可以在自动布局完成其工作后执行,或者更改其约束。将其设置为
视图中的
)。它应该会起作用


我希望这对您有所帮助。

好的,所以我在堆栈上找到了一个解决方案

正确的答案是:

  • 我需要创建一个高度约束的IBOutlet
  • 相应地更改该约束的值

  • 谢谢大家!

    试试这段代码,它可以在任何设备上运行

    let BackImage = UIImage(named: "backGrndImg@2x.png")!
    
    var imageView: UIImageView!
    
    override func loadView() {
    
        super.loadView()
        self.imageView = UIImageView(frame: CGRectZero)
        self.imageView.contentMode = .ScaleAspectFill
        self.imageView.image = BackImage
        self.view.insertSubview(imageView, atIndex: 0)
    
    }
    
    override func viewDidLayoutSubviews() {
    
        super.viewDidLayoutSubviews()
        self.imageView.frame = self.view.bounds
    
    }
    

    在“自动布局”中更改框架将没有帮助,一旦调用布局子视图,框架将重置。我没有在这个视图上设置任何约束,但是我在上面有另一个视图,但是我不认为这与它有任何关系。我记得在Obj-C中,您必须更改整个框架属性才能更新视图。另一件事是,如果设置了自动布局约束,它将忽略帧更改。但我在另一个UIView上设置了4个约束,这是否适用于我的另一个UIView?为什么我要更改哪个帧?能否演示如何创建视图并将其添加为子视图?我打开故事板,将新UIView拖到UIViewController顶部,更改背景颜色,以便我可以看到帧的更改,并且我在相应的类文件中创建了一个IBOutlet如果您不在InterfaceBuilder中设置约束,一些将自动添加。查看
    gameViewBuilder.constraints
    。还要确保
    gameViewBuilder.translatesAutoResizengMasktoConstraints
    为真。