为什么我不能设置UIImageVies的边界矩形宽度?

时间:2009-04-22 13:50:30

标签: iphone quartz-graphics

当我尝试这个时

myUIImageView.bounds.size.width = 50.0f;

然后我收到一个错误:赋值中的无效左值

但是当我这样做时,它会编译。虽然这是一项额外的工作

CGRect newRect = myUIImageView.bounds;
newRect.size.width = 50.0f;
myUIImageView.bounds = newRect;

虽然编译,但不会发生任何事情。我的UIImageView框架宽300,并且填充了宽度正好为300px的图像。它非常适合。所以现在我想要拉伸那个图像(只是为了好玩),所以我必须使边界矩形的宽度变小。让我们说50.0。但不幸的是,图像并没有像预期的那样受到伤害。什么都没发生。这段代码下面两行,我移动图像。这很有效。

3 个答案:

答案 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;

试试..