我有一个UIButton
指定宽度为200.其autoresizingMask
属性设置为UIViewAutoresizingFlexibleWidth
。 A UIImage
应用于此按钮的backgroundImage
属性。此UIimage
定义如下:UIButton backgroundImage stretchableImageWithLeftCapWidth:topCapHeight问题
[[UIImage imageNamed:@"buttonimage.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0]
buttonimage.png
具有400像素的宽度(按钮的2倍的宽度,因为视网膜分辨率的),代表了圆角矩形。在肖像模式下,一切都很好。只要用户旋转设备并且iPhone进入横向模式,UIButton
就会拉伸。由于此行为,图像的左侧圆角边框保持不变(stretchableImageWithLeftCapWidth:
),但右侧边角也拉伸。是否有我忘记设置的属性,确保只有一个指定的像素(例如第十个像素)被拉伸,而其他任何像素都保留了它的尺寸?
在此先感谢!
编辑:如果我使用较小的图像,这已经拉伸到肖像模式,这两个边界似乎被扩大。
解决! 如果你的形象被称为“myImage.png”,它是视网膜的版本,只是把它称为“[email protected]”
您应该在非视网膜大小中提供'buttonimage.png',并在视网膜大小中提供第二个版本名字'buttonimage @ 2x.png'。也许这解决了你的问题。 – 2011-04-23 19:41:54
这种行为在非视网膜和视网膜分辨率支持设备上都会出现。如果我正确理解这一点,那么[email protected]文件是唯一可以通过视网膜分辨率设备访问的文件,所以这没有什么区别。如我错了请纠正我。 – fscheidl 2011-04-23 19:46:00
没错。我已经尝试了一个简单的例子,并且有一个有趣的效果,当我将左帽设置为像3px这样的小量时,它会沿着整个按钮对此部分进行涂抹,其余部分正确绘制为与右侧对齐。景观看起来一样。我的按钮图像是50x50,当我将左帽设置为21px时,它恰好在圆角后面,即使在风景中也看起来很好。也许一些尝试和错误会做? – 2011-04-23 20:02:28