这个iOS应用程序是否使用分段控制?

时间:2015-03-02 07:55:06

标签: ios objective-c iphone swift uisegmentedcontrol

在这张照片(AirBnB iOS应用程序)中,它说的是Upcoming和Previous,你们怎么看待这是如何实现的?你们是否认为这是使用分段控制或两个不同的按钮相互反转(开/关,关/开)开发的? 是否有一种简单的方法(最好使用Swift)或库在应用程序中实现此功能? 对不起,如果这是一个非常天真的问题。这是我第三天学习iOS开发:面对喜悦之泪:

enter image description here

2 个答案:

答案 0 :(得分:1)

是的,它可能是一个分段控件。您可以使用以下内容:

UIImage *segmentSelected =
[[UIImage imageNamed:@"segcontrol_sel.png"]
    resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
UIImage *segmentUnselected =
[[UIImage imageNamed:@"segcontrol_uns.png"]
    resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
UIImage *segmentSelectedUnselected =
[UIImage imageNamed:@"segcontrol_sel-uns.png"];
UIImage *segUnselectedSelected =
[UIImage imageNamed:@"segcontrol_uns-sel.png"];
UIImage *segmentUnselectedUnselected =
[UIImage imageNamed:@"segcontrol_uns-uns.png"];

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected
forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected
forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected
forLeftSegmentState:UIControlStateSelected
rightSegmentState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance]
setDividerImage:segUnselectedSelected
forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateSelected
barMetrics:UIBarMetricsDefault];

引自RayWenderlich: http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6

答案 1 :(得分:0)

由于我们没有源代码,因此没有正确答案

然而,这可能是其中一个主张:

  • 使用UISegmentedControl并自定义其外观;
  • 使用两个UIButton并根据当前选择的那个更改外观;
  • 创建自己的组件:IBDesignable(您可以在构建界面时直接看到它)。

由于您正在第3天学习iOS开发,您可能想看看上面提到的所有命题。

IBDesignable解决方案可能更好。实际上,如果你正确地构建它,你将能够在不同的屏幕尺寸和多个应用程序中轻松地重复使用它。但是,首先创建它可能并不容易。