UIView *backgroundView = [[UIView alloc] init];
backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"menu_fon"]];
backgroundView.frame = self.window.frame;
[[UITableView appearance] setBackgroundView:backgroundView];
该应用程序在简单和滑块控制器中有几个表。这些控制器中的一些在这种背景下运行良好,但有时当我尝试用表打开一些滑块时 - 应用程序冻结,分配的内存越来越多。
有没有办法设置表格(或整个地图)的背景而没有这种不受欢迎的行为?感谢
答案 0 :(得分:2)
您正在创建UIView
以用作“背景”。
这不仅是一种记忆拖拽,也不是实现你想要的首选方式。
我建议您为每个UITableView
添加背景,但您的方法也可以正常工作,如下所示:
[[UITableView appearance] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"menu_fon"]]];
不是花费内存来创建新对象并将其添加到现有对象,而是将图像直接添加到UITableView
的背景中。
或者,您可以将背景直接添加到每个UITableView,如下所示:
[TABLEVIEWNAME setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"menu_fon"]]];
这可以解决您的问题,如果它仍然包含在此之后,我建议您查看其余的代码。
答案 1 :(得分:1)
背后的原因是拉伸/调整图像资源非常耗费资源。根据您的需要,您可以:
答案 2 :(得分:0)
为什么不直接使用UIImageView作为你的backgroundView,即:
[[UITableView appearance] setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menu_fon"]];