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