我想使用分段控件而不是UITabBar控制器来更改视图。这是否符合HIG?
如果是,我该怎么办?我应该为我的项目使用什么模板以及代码?
答案 0 :(得分:6)
有几个Apple应用程序使用分段控件来更改视图:iTunes,App Store应用程序和YouTube应用程序。但是,它们都在屏幕顶部使用它,并与分段控件结合使用。地图应用程序在屏幕底部使用一个,但这个想法与标签栏不同。日历应用程序还使用一个,用于列表,日和月视图(在底部的工具栏中)。
我认为经验法则是,如果您提供相同类型数据的不同视图,则可以使用分段控件。如果您显示的内容不相关,则应使用标签栏。您可能不会因为使用分段控件而拒绝应用程序,但如果您以非标准方式使用它,用户会感到有点困惑。
我不确定示例代码,我能看到的最接近的是“Top Songs”示例。这不会交换视图,只是在单击细分时更改FetchedResultsController
。
这是关于SO的另一个问题,几乎是一样的:
答案 1 :(得分: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。