我有一个 UIController ,正如你们所知UIController
与视图关联,您可以使用合成的 getter 和 setters 方法访问它
UIController controller = init code ..
..
controller.view
-> 这给了我我的UIView
保留并自动释放的对象,这将被合成 get 方法(如果我的合成 get 方法理解是正确的)
controller.view.frame -> this gives me my CGRect struct
controller.view.frame.size -> CGSize struct
为什么我不能直接给这个框架结构赋值
controller.view.frame.size.width = 20;
对于上述语句,我收到此错误“需要左值作为赋值的左操作数”
这是一个普通的 c 点运算符,我认为它应该可以工作。如果我遗漏了什么,请指教
在这种情况下使用点运算符就是使用frame
幕后的 getter 方法。由于框架属性是CGRect
,这是一个简单的 C 结构体,frame
返回值的副本,而不是指向该值的指针。更改它会修改您在堆栈上本地复制的 CGRect,而不是视图框架属性的 CGRect。要更新实际的框架属性,您必须通过 setter 方法[yourView setFrame:yourNewFrame];
or yourView.frame = yourNewFrame;
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)