当我尝试这个时
myUIImageView.bounds.size.width = 50.0f;
然后我收到一个错误:赋值中的无效左值
但是当我这样做时,它会编译。虽然这是一项额外的工作
CGRect newRect = myUIImageView.bounds;
newRect.size.width = 50.0f;
myUIImageView.bounds = newRect;
虽然编译,但不会发生任何事情。我的UIImageView框架宽300,并且填充了宽度正好为300px的图像。它非常适合。所以现在我想要拉伸那个图像(只是为了好玩),所以我必须使边界矩形的宽度变小。让我们说50.0。但不幸的是,图像并没有像预期的那样受到伤害。什么都没发生。这段代码下面两行,我移动图像。这很有效。
答案 0 :(得分:2)
-[UIView bounds]
返回一个新的CGRect
,其中包含视图边界的x,y,width和height值。更改此新CGRect
上的值无效,GCC会意识到这一点。
为了更改宽度,您必须从视图中获取边界,将它们存储在某处,更改存储的CGRect
上的宽度值,并使用-[UIView setBounds:]
<通知视图新的边界/ p>
答案 1 :(得分:0)
属性大小和orign是只读的。
界限不是只读的。
让我们为什么你可以改变界限,但不能改变大小
答案 2 :(得分:0)
这适合(对我来说);
CGRect frame = myUIImageView.frame;
frame.size.width = 50.0;
myUIImageView.frame = frame;
试试..