gpt4 book ai didi

ios - 在 UISegmentedControl 中,如何将正常颜色与所选颜色分开?

转载 作者:行者123 更新时间:2023-11-29 02:26:50 25 4
gpt4 key购买 nike

这是我想要的效果:

enter image description here

这是我目前所拥有的:

enter image description here

Cocoa 不允许您为每个段同时设置图标和文本,因此我不得不将文本刻录到图像中:

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:@[
[UIImage imageNamed:@"segmentedControlContacts"],
[UIImage imageNamed:@"segmentedControlOtherApps"]
]];

我必须完成的最后一件事是将正常(未选中)的段设为灰色,而不是其选中/淡蓝色。以下无效:

// themeColor is defined as a shade of blue in a category
[UIView appearance].tintColor = [UIColor themeColor];
[[UISegmentedControl appearance]
setBackgroundImage:[UIImage imageNamed:@"segmentedControlEdgeNormal"]
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance]
setBackgroundImage:[UIImage imageNamed:@"segmentedControlEdgeSelected"]
forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance]
setTitleTextAttributes:@{
NSForegroundColorAttributeName: [UIColor grayColor]
}
forState:UIControlStateNormal
];

最佳答案

线

[[UISegmentedControl appearance] setTitleTextAttributes:@{
NSForegroundColorAttributeName: [UIColor grayColor]
}
forState:UIControlStateNormal
];

仅适用于段控件的标题。如果您从片段中删除图像并为两个片段添加标题,那么这肯定会起作用。

这不会影响分段控制的图像。

对于图像自定义,您必须使用方法:

- (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics

它也不会像您预期的那样显示色调。

建议:

如果您仍然坚持要进行自定义行为,我建议保留段控件,而不是创建两个按钮并将它们并排放置,感觉就像一个段控件。

对于这种行为,您需要为按钮背景设置灰色图像并为备用按钮事件更改。

关于ios - 在 UISegmentedControl 中,如何将正常颜色与所选颜色分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com