我在网格视图中显示大约700个项目。
在三星Galaxy Tab 10.1上,这不是问题:它有足够的内存。 在HTC Explorer上,堆溢出。
所以我想动态加载有关当前滚动位置的数据(屏幕为N行,尾部为5行)。我想显示一个滚动条,表示总行数的位置。但我不想画出我看不到的物品。
换句话说,我想在iOS中创建类似于UITableView
的内容。我怎么能这样做?
答案 0 :(得分:2)
Android Adapter
的工作方式与iOS UITableViewDataSource
类似。你需要打电话
public void setAdapter (ListAdapter adapter)
在GridView
上,然后该适配器将收到如下回调:
public int getCount ()
public View getView (int position, View convertView, ViewGroup parent)
重新使用convertView
非常重要,就像您在
UITableViewCell
一样
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
如果你正确地做了这一切,它将永远不会尝试一次加载所有视图,但只会加载当前显示的视图,不再有内存问题。
答案 1 :(得分:0)
您应该使用能够重用View对象的ListView,这样您就不必实例化这么多对象。