我遇到了这个非常特殊的问题,我无法修改 UIImageView 的框架。
我把它隔离到这个非常简单的例子中。从默认的单视图应用程序 xcode 模板开始,我在 Interface Builder 中添加了一个 UIImageView,将其链接到名为 testImage 的 ViewController 属性,然后在 ViewController.m 中添加:
-(void)viewDidAppear:(BOOL)animated{
UIImageView* maskImage = [[UIImageView alloc] initWithFrame:self.testImage.frame];
maskImage.image = self.testImage.image;
maskImage.alpha = 0;
[self.view addSubview:maskImage];
self.testImage.frame = CGRectMake(10, 10, 10, 10);
}
它不起作用。测试图像坚定地保持在原来的位置。如果我不添加 maskImage 来查看,则该示例有效。而且,是的,我确定我没有用 maskImage 覆盖目的地。
如果我不使用 IB 来放置图像,而是使用:
self.testImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, 300, 300)];
self.testImage.image = [UIImage imageNamed:@"jim-105.png"];
[self.view addSubview:self.testImage];
在 viewDidLoad 中,一切都按预期工作。
我也尝试将图像放在 IB 中,然后在 viewDidLoad 中设置其属性,但效果相同。我一直在 Xcode5 中尝试这个。我在这里无法访问以前的 Xcode,我不确定这是预期的行为(如果是,为什么)或者这是一个错误?