我正在尝试执行以下操作:
alt text http://img101.imageshack.us/img101/7396/33959221.png
我需要做很多自定义的事情,所以我将所有内容都包含在内。
alt text http://img248.imageshack.us/img248/4201/49422483.png
我遇到自动调整和定位问题。例如,UIToolBar位置不正确。 所以这是一个问题: 如果你不使用UITableViewController或任何其他控制器,它负责所有的定位和大小调整,那么你必须自己做。 有人可以告诉我这是如何工作的吗?我需要了解什么?
----更新:
我的自定义目标实际上并不重要,因为我的问题实际上是关于其他事情。但是没问题。因此,像TableView,工具栏和TabBar这样的所有“元素”都将具有自定义背景并使用自定义按钮。 TableView将是GroupedStyle,并且可以折叠组。
我的问题是如何构建我的代码,尤其是关于定位和自动调整的代码,以实现您在图片#1中看到的内容。
这就是它现在的结构:
Application Delegate:
- (void) loadView {
RootViewController *rootView = [[RootViewController alloc] init];
[window addSubview:rootView.view];
[window makeKeyAndVisible];
RootViewController:
- (void) loadView {
self.theView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.theView.autoresizesSubviews = YES;
self.theView.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
self.view = self.theView;
ChildViewController *childView = [[ChildViewController alloc] init];
[self.view addSubview:childView.view];
ChildViewController:
- (void) loadView {
self.theView = [[UIView alloc] init];
self.view = self.theView;
}
- (void) viewDidLoad {
self.view.frame = [[UIScreen mainScreen] bounds];
CGRect toolbarBounds = self.theToolbar.bounds;
CGRect viewBounds = self.view.bounds;
CGRect tableViewBounds = CGRectMake(0, CGRectGetHeight(toolbarBounds), CGRectGetWidth(viewBounds), CGRectGetHeight(viewBounds) - CGRectGetHeight(toolbarBounds));
self.view.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
self.theTableView = [[MyTableView alloc] initWithFrame:tableViewBounds
style:UITableViewStyleGrouped
parent:self];
[self.view addSubview:self.theToolbar];
[self.view addSubview:self.theTableView];
}
MyToolBar:
- (id)initWithParent:(id)theParent {
if ((self = [self init])) {
self.parent = theParent;
CGRect rectArea = CGRectMake(0, 0, CGRectGetWidth([[[self parent] view] bounds]), 44);
[self setFrame:rectArea];
self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self loadButtons];
}
return self;
}
这就是目前定位的结构(凌乱)。它确实有效,但是我有一个由ChildViewController处理的ModalView。当我在纵向视图中使用iPad并弹出模态视图并将其关闭时,一切正常。但是当我在Landscape视图中执行相同操作时,它会在解除模态视图时将孔视图... ChildViewController旋转90度。很奇怪。当我在AppDelegate中直接加载ChildViewController时,一切都运行正常。
答案 0 :(得分:1)
例如,您在工具栏的自动调整大小掩码中缺少UIViewAutoresizingFlexibleBottomMargin选项。