UIImage的resizableImageWithCapInsets
方法对于带有圆角的标准矩形按钮来说都很好,但是我试图创建一个看起来像云的边缘不均匀的按钮。我无法理解绘制或创建它的最佳方式,或者当我将它放入应用程序时我将如何拉伸它。我正在谈论这样的事情:
云端两侧的气泡不应该伸展,但是无论多长/短按钮都需要创建新气泡。例如,如果按钮需要是此图像大小的一半,则只显示2个气泡,但如果它需要更高,超过这里的5个,则添加和删除它们有必要的。我设置了最小尺寸,以便至少有一个气泡可以存在,如果太小则可以防止出现问题。如果需要,可以平铺气泡本身。
从软件开发或平面设计的角度来看,有没有人对如何实现这样的效果有任何建议?
修改
我已经尝试使用下面的图片和以下代码执行此操作,并且它会像这里的图像一样给出结果。图像的尺寸不均匀,更不用说平铺了。我已经验证了图像的帧大于此处显示的帧。真的很困惑!
cappedCloud = [[UIImage imageNamed: @"cloud.png"] resizableImageWithCapInsets: UIEdgeInsetsMake(9, 9, 9, 9) resizingMode: UIImageResizingModeTile];
[[cell.cloudButton imageView] setContentMode: UIViewContentModeScaleToFill];
[cell.cloudButton setImage: cappedCloud forState: UIControlStateNormal];
[cell.cloudButton setAlpha: 0.85f];
答案 0 :(得分:5)
您可能希望了解如何使用
创建tiled resizable image- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
使用稍微修改过的代码版本,我能够将图像拼接到按钮上,虽然它不是很好:
UIImage* cappedCloud = [[UIImage imageNamed: @"cloud.png"] resizableImageWithCapInsets: UIEdgeInsetsMake(9, 9, 9, 9) resizingMode: UIImageResizingModeTile];
[cloudButton setBackgroundImage:cappedCloud forState:UIControlStateNormal];
[cloudButton setAlpha: 0.85f];
cloudImage.image = cappedCloud;
答案 1 :(得分:0)
拉伸在垂直方向上处理,然后在水平方向上处理(反之亦然)。所以提供top&考虑不应拉伸和垂直方向的垂直方向的底部偏移水平方向的右偏移。