Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 自动将视图放置在下一个逻辑位置(如布局管理器)_Objective C_Xcode_Ios_Ipad - Fatal编程技术网

Objective c 自动将视图放置在下一个逻辑位置(如布局管理器)

Objective c 自动将视图放置在下一个逻辑位置(如布局管理器),objective-c,xcode,ios,ipad,Objective C,Xcode,Ios,Ipad,我正在开发一个iPad应用程序,允许用户选择“小部件”显示在屏幕上。屏幕分为两列,小部件将放在左边或右边的列中。每个小部件都是一个视图控制器,具有固定的静态宽度,但根据小部件的内容具有不同的高度。我正在寻找一种将小部件放置在屏幕上的方法,以便它们自动放置在下一个逻辑位置——类似于Java中的布局管理器 我创建了addWidget方法,它跟踪每列中所有小部件的高度。然后将小部件添加到具有最小高度的列中。这是可行的,但我正在寻找一种更优雅的方法,或者改进当前解决方案的想法 - (void) addW

我正在开发一个iPad应用程序,允许用户选择“小部件”显示在屏幕上。屏幕分为两列,小部件将放在左边或右边的列中。每个小部件都是一个视图控制器,具有固定的静态宽度,但根据小部件的内容具有不同的高度。我正在寻找一种将小部件放置在屏幕上的方法,以便它们自动放置在下一个逻辑位置——类似于Java中的布局管理器

我创建了addWidget方法,它跟踪每列中所有小部件的高度。然后将小部件添加到具有最小高度的列中。这是可行的,但我正在寻找一种更优雅的方法,或者改进当前解决方案的想法

- (void) addWidget:(UIViewController *)controller {

    if(leftHeight <= rightHeight) {
        controller.view.frame = CGRectMake(20.0, leftHeight, controller.view.bounds.size.width, controller.view.bounds.size.height);
        leftHeight = leftHeight + controller.view.bounds.size.height + 20;
    }

    else {
        controller.view.frame = CGRectMake(self.view.bounds.size.width-controller.view.bounds.size.width-20, rightHeight, controller.view.bounds.size.width, controller.view.bounds.size.height);
        rightHeight = rightHeight + controller.view.bounds.size.height + 20;
    }

    [scrollView addSubview:controller.view];
}
-(void)addWidget:(UIViewController*)控制器{

如果(leftHeight我认为这可能适用于两个UITableView对象,每列一个。当您添加一个新控件时,您仍然需要进行数学运算以确定它进入哪一列,但您应该可以更轻松地垂直排列单元格,因为表视图可以做到这一点。如果您当前正在将两列一起滚动呃,您需要注意每个表视图的滚动,并以编程方式更新另一个表视图。

如果您想为小部件创建一个类似跳板的视图,我建议查看框架

它提供了一个
[TTLauncherView][2]
类,它完全实现了您要查找的内容,包括分页、图标的重新排序以及删除时的抖动效果,就像真正的跳板一样。一旦您了解了有关Three20的知识,它就非常容易使用

顺便说一句,这是一个正式的Facebook应用程序使用

如果您不想使用Three20,您只需查看一下实现就可以下定决心