移除 UISegmentedControl 的框架

Posted

技术标签:

【中文标题】移除 UISegmentedControl 的框架【英文标题】:Remove frame of UISegmentedControl 【发布时间】:2014-05-31 23:26:40 【问题描述】:

ios 7 中有没有办法完全移除UISegmentedControl 的外框?所选片段应该只有一个色调颜色的矩形。

【问题讨论】:

我不这么认为...您可能需要子类化或使用按钮制作自己的按钮。 【参考方案1】:

首先,创建三张图片并将它们添加到您的图片资源中。

空白(任意大小的透明 png) 高光(任意颜色和大小的 png) 选择(任意颜色和大小的 png)

然后添加这段代码:

UIImage *backgroundImage = [UIImage imageNamed:@"Blank"];
UIImage *highlightedImage = [UIImage imageNamed:@"Highlight"];
UIImage *selectedImage = [UIImage imageNamed:@"Select"];
UIImage *dividerImage = [[UIImage alloc] init];
[segmentedControl setBackgroundImage:backgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedControl setBackgroundImage:highlightedImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[segmentedControl setBackgroundImage:selectedImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segmentedControl setDividerImage:dividerImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

【讨论】:

我只是用同样的方法做的,只是在运行时创建了一个 1x1 像素的图像,而不是一个额外的资产。

以上是关于移除 UISegmentedControl 的框架的主要内容,如果未能解决你的问题,请参考以下文章

UISegmentedControl去掉背景色与UIScrollView联动

如何以编程方式将 UISegmentedControl 添加到容器视图

移除导航栏和工具栏的边框

自定义 UISegmentedControl 样式

UISegmentedControl 自定义/扩展

如何更改 UISegmentedControl 的字体颜色