我是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)。因此,视图显示底层图像的不同部分。但是,由于框架矩形没有改变,新内容显示在父视图内的同一位置。
提前致谢。 安德鲁
答案 0 :(得分:1)
首先,在尝试更改其边界之前,请确保您对图像视图有适当的引用。检查它不是nil
。
其次,您可能需要更改矩形,然后在单独的语句中再次设置它,如下所示:
CGRect rect = imageView.bounds;
rect.origin = CGPointMake(whatever, whatever);
imageView.bounds = rect;
界限甚至可能不是你想要的。我不知道你的引言在哪里,但听起来不对。尝试使用图像视图的框架将其定位在超视图中。