我创建了一个简单的窗口,目的是成为“向导”(我知道 Apple 指南基本上禁止您这样做,我试图说服客户,但无论如何。
这只是一个简单的视图,里面有两个自定义视图,一个在底部,包含一个“上一个”和“下一个”按钮,一个在顶部的更大的视图占据了大部分空间。
我将底部视图称为“NavigationView”,将顶部视图称为“ContainerView”。
我创建了一个数组来保存用户应该使用“下一个”和“上一个”按钮导航的一系列视图。
所以,这是我的代码。
- (IBAction) next:(id)sender{
currentViewIndex++;
[self animatePushView:YES];
}
- (IBAction)previous:(id)sender{
currentViewIndex--;
[self animatePushView:NO];
}
- (void) animatePushView:(BOOL)forward{
NSView *nextView = [viewCollection objectAtIndex:currentViewIndex];
for (NSView *subView in [containerView subviews]) {
[subView removeFromSuperview];
}
[containerView addSubview:nextView];
[nextView setFrame:containerView.bounds];
[containerView setNeedsDisplay:YES];
}
我认为这很简单。我有一个数组,其中包含要显示的下一个视图。
发生的情况是,我发现下一个视图位于 ContainerView 的左下方。为什么会这样?
另外,正如您可能已经猜到的那样,我是管理视图的新手,尽管我已经在 Objective-c 上工作了很长时间,所以如果我缺少一些最佳实践,我愿意接受建议。谢谢!
编辑:
我忘了补充:其中一些视图有不同的大小,我希望能够根据视图大小更改窗口大小。