我有一个UIImageView
我想要可拉伸的图像。为了实现这一点,我执行以下操作viewDidLoad
:
-(void) buildResizableDescriptionAreaBackground
{
UIImage *image = [UIImage imageNamed:@"description_area_background"];
CGFloat top = ceilf(image.size.height / 2.0) - 1;
CGFloat bottom = floorf(image.size.height / 2.0);
CGFloat left = ceilf(image.size.height / 2.0) - 1;
CGFloat right = floorf(image.size.height / 2.0);
if ([image respondsToSelector:@selector(resizableImageWithCapInsets:)])
{
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
}
else
{
image = [image stretchableImageWithLeftCapWidth:left topCapHeight:top];
}
[self.descriptionAreaBackgroundImage setImage:image];
[self.descriptionAreaBackgroundImage setHighlightedImage:image];
}
当我调试它时,我确保它descriptionAreaBackgroundImage
不是 nil,不是隐藏的,alpha = 1 并且具有正确的框架。此外,我确保图像不为零,具有正确的大小,并且可调整大小的图像也不为零。然而图像未设置为 UIImageView。
如果我这样做viewDidAppear:
一切正常。如果我设置一个常规图像(不可拉伸,即使在viewDidLoad
)一切正常。
据我所知,任何不需要超级视图或窗口的设置都可以在 完成viewDidLoad
,那么为什么它不起作用?