【问题标题】:UISplitViewController Multiple Detail Views Segmented ControlUISplitViewController 多个细节视图分段控制
【发布时间】:2011-07-29 00:55:43
【问题描述】:

我正在使用拆分视图控制器中的 iPad 应用程序,该应用程序将始终保持横向。我希望根视图控制器保留一个列表,而详细视图控制器交换由 UISegmentedControl 控制的 4 个不同视图。

我在这里UISegmentedControl Best Practice 关注这篇文章,但是当我换入我的视图控制器时,它们不适合在 detailview 控制器中,它们被切断,就好像它们正在尝试为 ipad 纵向方向绘制一样。

如果我完全忽略分段控制方法并有一个详细视图,则视图大小在详细视图中正确,但是一旦我尝试将它们与分段控件交换,我就会遇到麻烦。

有没有办法告诉交换的视图正确绘制?

【问题讨论】:

  • 除此之外:“将始终保持在横向”这当然是违反建议的做法。最好让用户决定他们喜欢如何工作 - 也就是说,在第一次拍摄样机时,可以忽略此建议

标签: ios ipad uisplitviewcontroller uisegmentedcontrol


【解决方案1】:

你试过了吗:

swappedInView.frame = detailController.view.bounds;

当你打电话时

[detailedController.view addSubview:swappedInView];

?

它们的内容需要适当地设置它们的大小调整行为(在 xcode/IB 中最容易)。

【讨论】:

  • 成功了,没有意识到我的子视图没有继承它们的父视图框架。感谢您指出这一点,我不好意思说我错过了。
【解决方案2】:

我也在使用 UISegmentControl,但是以编程方式添加我的视图。我在 rootController 的 viewDidLoad 中首先加载了我的默认视图(段 0)。然后根据按下的是哪个段,我检查视图是否已经初始化,如果没有,则初始化,然后将其添加为子视图。然后删除另一个视图。我有一篇关于如何跟踪它的类似帖子,这可能会对您有所帮助,并且有我用于我自己的应用程序的“开始 iPhone 4 开发”一书中的代码。如果您想采用这种方法,这里是帮助您入门的代码 sn-p:

if (self.yellowViewController.view.superview == nil)
{
    if (self.yellowViewController == nil)
    {
        YellowViewController *yellowController =
        [[YellowViewController alloc] initWithNibName:@"YellowView"
bundle:nil];
        self.yellowViewController = yellowController;
        [yellowController release];
    }
    [blueViewController.view removeFromSuperview];
    [self.view insertSubview:yellowViewController.view atIndex:0];
}
else
{
    if (self.blueViewController == nil)
    {
        BlueViewController *blueController =
        [[BlueViewController alloc] initWithNibName:@"BlueView"
bundle:nil];
        self.blueViewController = blueController;
        [blueController release];
    }
    [yellowViewController.view removeFromSuperview];
    [self.view insertSubview:blueViewController.view atIndex:0];
}

在我自己的情况下,我将其添加为子视图,而不是将其插入到其他视图的后面(在他们的示例中,它们的前面有一个工具栏)。因此,如果说第 3 段被按下,那么我会检查其他视图是否存在它们的超级视图,删除该视图,添加我的视图。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多