0

当我尝试这个

myUIImageView.bounds.size.width = 50.0f;

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

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

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

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

4

3 回答 3

2

-[UIView bounds]返回一个CGRect包含视图边界的 x、y、宽度和高度值的新值。更改这个新的值CGRect不会有任何效果,GCC 意识到了这一点。

为了更改宽度,您必须从视图中获取边界,将它们存储在某处,更改存储的宽度值CGRect并使用通知视图其新边界-[UIView setBounds:]

于 2009-04-22T14:37:51.573 回答
0

属性 size 和 orign 是只读的。

bounds 不是只读的。

这就是为什么你可以改变界限,但不能改变大小

于 2009-04-22T13:56:37.053 回答
0

这有效(对我来说);

CGRect frame = myUIImageView.frame;
frame.size.width = 50.0;
myUIImageView.frame = frame;

试试那个。。

于 2009-04-22T14:11:41.900 回答