我创建了一个单选按钮,如下所示:
signupButton = [[UIButton alloc] initWithFrame:CGRectMake(10,(facebookLoginButton.bounds.size.height + 40),300,50)];
signupButton.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
UIImage *signupButtonImage = [[UIImage imageNamed:@"Signup"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
[signupButton setBackgroundImage:signupButtonImage forState:UIControlStateNormal];
按钮的框架为每个300x50。我创建了一个图像(对于Retina设备)为22(w)x100(h)px。
图像为22像素,包括10px圆角和2px,用于可重复的中间部分。
我尝试使用上面的代码实现拉伸,其中insets为0,10,0,10,但这并没有按预期延伸。
有人可以解释插图应该是什么吗?另外如何解决这些问题,我找不到有关如何实际计算插图应该是什么的任何有用信息?我已经阅读了关于此的Apple文档,但我不明白如何解决这些问题。
答案 0 :(得分:0)
您的图片尺寸为22x100
,但它是视网膜图像。
这意味着磅值为11x50
插图应为UIEdgeInsetsMake(5.0f, 5.0f, 5.0f, 5.0f)
答案 1 :(得分:0)
使用以下代码创建可伸展的图像,并将其分配给相应的UIImageView
UIImage *bgImage = [[UIImage imageNamed:@"Signup"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
您需要正确计算9补丁图像的TopCap和LeftCap。 祝你好运。