如何在iPhone上实现二维滚动

时间:2010-09-08 04:19:27

标签: iphone objective-c uiscrollview

我正在尝试在我的应用中创建类似Excel的视图。要做到这一点,我想同时实现水平n垂直滑动。即,如果垂直滚动将填充行,而水平与列..没有线索开始。

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题。当然,我会说从UIScrollView开始,并将内容大小设置为大于屏幕大小,具体到你有多大。

接下来,您将需要进行某种实现,以有效地确定屏幕上的单元格。如果我是你,我会做类似于UITableView的工作,即根据滚动视图的偏移量制作一个自定义对象,跟踪屏幕上应该有哪些索引。

接下来,您将需要此自定义对象直接或间接地使可见单元格在可见时显示在屏幕上,并在不可见时从超级视图中删除它们。我还建议重新使用屏幕外的视图。

这是您正在尝试制作的一个中等挑战性的事情,因此请确保您非常有条理,不要害怕制作一些新的自定义对象来执行特定任务。

示例界面文件:

 @protocol doubleTableViewDelegate

 -(NSInteger)heightForRow:(NSInteger)row;
 -(NSInteger)widthForCol:(NSInteger)col;

 -(NSInteger)numberOfRows:(NSInteger)rows;
 -(NSInteger)numberOfCols:(NSInteger)cols;

 -(UIView *)cellForRow:(NSInteger)row col:(NSInteger)col;     //get the custom table view to store and dequeue these, i.e. store them in an NSSet when they go offscreen, and give them back when a certain function is called.

 //There's probably a few functions missing here still.

 @end

 @interface doubleTableView: UIScrollView {
      id<doubleTableViewDelegate> infoDelegate;
 }

 //your functions to show and remove cells as needed

 @end

你需要解决剩下的问题,但不断更新这个页面,我会尽力帮忙。 祝你好运,让我知道它是怎么回事。