更改UIView的bounds属性不会影响其内容

时间:2009-01-25 06:24:58

标签: iphone

我是iPhone编程的新手,我正在尝试理解框架和边界属性的工作原理。在“界面”构建器中,我创建了UIView,其中我将UIImageView作为孩子。 我使UIImageView大于父视图。并为父UIView设置'clip subview'属性为true,为子UIImageView设置为false 当我以编程方式更改子frame.origin的{​​{1}}属性时。但当我更改父UIImageView的{​​{1}}属性时,我什么也看不见。可能我错误地理解bounds.origin的目的。

如何获取iPhone应用程序编程指南中描述的行为

您可以在不更改其他两个属性的情况下更改边界原点。执行此操作时,视图将显示您已识别的基础图像部分。在图2-4(第56页)中,原始边界原点设置为(0.0,0.0)。在图2-5中,该原点移动到(8.0,24.0)。因此,视图显示底层图像的不同部分。但是,由于框架矩形没有改变,新内容显示在父视图内的同一位置。

提前致谢。 安德鲁

1 个答案:

答案 0 :(得分:1)

首先,在尝试更改其边界之前,请确保您对图像视图有适当的引用。检查它不是nil

其次,您可能需要更改矩形,然后在单独的语句中再次设置它,如下所示:

CGRect rect = imageView.bounds;
rect.origin = CGPointMake(whatever, whatever);
imageView.bounds = rect;

界限甚至可能不是你想要的。我不知道你的引言在哪里,但听起来不对。尝试使用图像视图的框架将其定位在超视图中。