1

我想使用分段控件而不是 UITabBar 控制器来更改视图。这符合HIG吗?

如果是,我该怎么做?我应该为我的项目使用什么模板以及什么代码?

4

2 回答 2

6

有几个 Apple 应用程序使用分段控件来更改视图:iTunes、App Store 应用程序和 YouTube 应用程序。但是,它们都在屏幕顶部使用它,并与分段控件结合使用。地图应用程序在屏幕底部使用了一个,但这个想法与标签栏不同。日历应用程序也使用一个,用于列表、日和月视图(在底部的工具栏中)。

我认为经验法则是,如果您提供相同类型数据的不同视图,则可以使用分段控件。如果您显示的内容不相关,则应使用标签栏。您可能不会因为使用分段控件而拒绝应用程序,但如果您以非标准方式使用它,用户会有点困惑。

我不确定示例代码,我能看到的最接近的是“热门歌曲”示例。这不会交换视图,它只会更改FetchedResultsController单击片段的时间。

这是关于 SO 的另一个问题,几乎相同:

如何使用 UISegmentedControl 切换视图?

于 2010-04-09T23:42:13.427 回答
1

我是这样做的:

-(IBAction)segmentedControlIndexChanged{
switch (self.segmentedControl1.selectedSegmentIndex) {
    case 0:
        [details1 removeFromSuperview];
        [details2 removeFromSuperview];
        [details3 removeFromSuperview];
        [details addSubview:details0];
        break;
    case 1:
        [details2 removeFromSuperview];
        [details0 removeFromSuperview];
        [details3 removeFromSuperview];
        [details addSubview:details1];
        break;
    case 2:
        [details0 removeFromSuperview];
        [details1 removeFromSuperview];
        [details3 removeFromSuperview];
        [details addSubview:details2];
        break;
    case 3:
        [details0 removeFromSuperview];
        [details1 removeFromSuperview];
        [details2 removeFromSuperview];
        [details addSubview:details3];
        break;
    default:
        break;
}
}

确保将 IB 中分段控件的 valueChanged 方法绑定到此 IBAction。

于 2011-08-22T09:53:27.650 回答