这个 iOS 应用程序使用分段控制吗?
Is this iOS app using segmented control?
在这张照片(AirBnB iOS 应用程序)中,上面写着 Upcoming 和 Previous,你们认为这是如何实现的?大家觉得这是用分段控制开发的还是两个不同的按钮互相反转(on/off,off/on)?
有没有简单的方法(最好使用 Swift)或库来在应用程序中实现此功能?
对不起,如果这是一个非常天真的问题。这是我学习 iOS 开发的第 3 天:泪流满面:
是的,它可能是一个分段控件。你可以有类似下面的东西:
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
没有正确答案,因为我们没有源代码。
然而,它可能是以下命题之一:
- 使用
UISegmentedControl
并自定义其外观;
- 使用两个
UIButton
并根据当前选择的那个更改外观;
- 创建您自己的组件:
IBDesignable
(您可以在构建界面时直接看到)。
由于您是 第 3 天学习 iOS 开发,您可能想看看上面的所有命题。
IBDesignable
解决方案可能是更好的解决方案。事实上,如果你正确地构建它,你将能够在不同的屏幕尺寸和多个应用程序中轻松地重用它。但是,您一开始创建它可能并不容易。
在这张照片(AirBnB iOS 应用程序)中,上面写着 Upcoming 和 Previous,你们认为这是如何实现的?大家觉得这是用分段控制开发的还是两个不同的按钮互相反转(on/off,off/on)? 有没有简单的方法(最好使用 Swift)或库来在应用程序中实现此功能? 对不起,如果这是一个非常天真的问题。这是我学习 iOS 开发的第 3 天:泪流满面:
是的,它可能是一个分段控件。你可以有类似下面的东西:
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
没有正确答案,因为我们没有源代码。
然而,它可能是以下命题之一:
- 使用
UISegmentedControl
并自定义其外观; - 使用两个
UIButton
并根据当前选择的那个更改外观; - 创建您自己的组件:
IBDesignable
(您可以在构建界面时直接看到)。
由于您是 第 3 天学习 iOS 开发,您可能想看看上面的所有命题。
IBDesignable
解决方案可能是更好的解决方案。事实上,如果你正确地构建它,你将能够在不同的屏幕尺寸和多个应用程序中轻松地重用它。但是,您一开始创建它可能并不容易。