Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone上实现二维滚动_Iphone_Objective C_Uiscrollview - Fatal编程技术网

如何在iPhone上实现二维滚动

如何在iPhone上实现二维滚动,iphone,objective-c,uiscrollview,Iphone,Objective C,Uiscrollview,我正在尝试在我的应用程序中创建类似excel的视图。要做到这一点,我希望同时实现水平和垂直滑动。也就是说,如果垂直滚动将填充行,水平滚动将填充列。。一开始就没有线索。这是一个有趣的问题。当然,我会说从UIScrollView开始,将内容大小设置为大于屏幕大小,具体大小由您决定 接下来,您将需要进行某种实现,以有效地计算屏幕上的单元格。如果我是你,我会做一些类似于UITableView的事情,即创建一个自定义对象,根据滚动视图的偏移量跟踪屏幕上应该有哪些索引 接下来,您将需要此自定义对象直接或间接

我正在尝试在我的应用程序中创建类似excel的视图。要做到这一点,我希望同时实现水平和垂直滑动。也就是说,如果垂直滚动将填充行,水平滚动将填充列。。一开始就没有线索。

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

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

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

这是一个中等挑战性的事情,你正试图使,所以要确保你是非常有组织的,不要害怕作出一些新的自定义对象来执行特定的任务

示例接口文件:

 @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
@protocol-doubleTableViewDelegate
-(NSInteger)高度FORROW:(NSInteger)row;
-(NSInteger)列的宽度:(NSInteger)列;
-(NSInteger)行数:(NSInteger)行数;
-(NSInteger)cols数:(NSInteger)cols;
-(UIView*)单元格FORROW:(NSInteger)行列:(NSInteger)列列//获取自定义表视图以存储这些数据并将其出列,即,当它们离开屏幕时将其存储在NSSet中,并在调用某个函数时将其返回。
//这里可能还缺少一些函数。
@结束
@接口doubleTableView:UIScrollView{
id infoDelegate;
}
//根据需要显示和删除单元格的功能
@结束
你需要解决剩下的问题,但是继续更新这个页面,我会尽力帮助你。 祝你好运,让我知道进展如何