我想编写一个架子,我不想考虑在旋转时调整大小和更改背景图像,这取决于屏幕尺寸(iPad / iPhone)。是否可以创建一个水平拉伸但垂直重复的图像?
到目前为止,我只找到[UIColor colorWithPatternImage:]
和[UIImage strechableImageWithLeftCapWidth:topCapHeight:]
或新的[UIImage resizableImageWithCapInsets:]
。但显然,我无法让他们一起工作。
我希望插图有助于理解我的问题:
您是否知道如何完成上述操作,以便它可以针对不同的尺寸和方向使用单个图像?谢谢!
答案 0 :(得分:3)
我还需要从图像设置UIView背景并同时更改其大小。我做的是:
[UIColor colorWithPatternImage:(UIImage*)]
以下是代码:
UIGraphicsBeginImageContext(self.followView.frame.size);
[[UIImage imageNamed:@"background_content.png"] drawInRect:self.followView.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIColor *bgColor = [UIColor colorWithPatternImage:image];
[followView setBackgroundColor:bgColor];
答案 1 :(得分:2)
[UIColor colorWithPatternImage:]
会占用大量内存。我最终使用[UIColor colorWithPatternImage:]
创建了比整个视图大一行的单个图像视图,然后在视图即将滚动到屏幕外时根据需要向上或向下偏移该视图。由于视图仅在行边界处移动,因此性能比我预期的要好得多。
但是,更好的选择是使用UImageViews
创建一个单独的[UIColor colorWithPatternImage:]
池并对其进行平铺,类似于UITableView
表格查看单元格。
Apple提供的示例代码说明了ScrollView Suite示例项目中的此技术以及WWDC 2010中的使用滚动视图设计应用程序视频。
答案 2 :(得分:0)
为什么不使用一个书架的可伸缩图像,然后将其设置为tableview上每个单元格的背景?
编辑:
我对AQGridView
的了解有限,但听起来您可以访问每个'网格图块'。
尝试每行三张图片: - 最左侧网格图块的图像,显示工具架的左角 - 架子中心部分的图像,应用于除第一个和最后一个图块之外的所有图块 - 最右边网格图块的图像,以显示货架的右角。
此外,您可能应该提到您在问题中使用AQGridView
,以便其他用户不会认为您使用的是UITableView
。