如何更改UISegmentedControl的一个特定段的文本颜色?我想让它们保持所有正常状态,除了一个特定的段,该段应该是不同的颜色,无论是否选中。
答案 0 :(得分:1)
@IBDesignable
class DesignableSegmentControl: UISegmentedControl{
}
extension UISegmentedControl{
@IBInspectable
var textColor: UIColor{
get {
return self.textColor
}
set {
let unselectedAttributes = [NSAttributedString.Key.foregroundColor: newValue,
NSAttributedString.Key.font: UIFont.systemFont(ofSize: 13, weight: UIFont.Weight.regular)]
self.setTitleTextAttributes(unselectedAttributes, for: .normal)
self.setTitleTextAttributes(unselectedAttributes, for: .selected)
}
}
}
只需更改细分控件的类名,如下所示:
答案 1 :(得分:1)
快速5 :
public class PhotoMekanik implements Serializable {
@SerializedName("machineid")
private String machineid;
@SerializedName("mekanik")
private String mekanik;
@SerializedName("trans_id")
private String trans_id;
public PhotoMekanik(String machineid, String mekanik, String trans_id) {
this.machineid = machineid;
this.mekanik = mekanik;
this.trans_id = trans_id;
}
public String getMachineid() {
return machineid;
}
public void setMachineid(String machineid) {
this.machineid = machineid;
}
public String getMekanik() {
return mekanik;
}
public void setMekanik(String mekanik) {
this.mekanik = mekanik;
}
public String getTrans_id() {
return trans_id;
}
public void setTrans_id(String trans_id) {
this.trans_id = trans_id;
}
}
答案 2 :(得分:0)
没有任何内置方法;您可能已经发现,setTitleTextAttributes
适用于所有细分。您将不得不将文本绘制为图像,并使用它。
答案 3 :(得分:0)
更新了Swift 4.1
UISegmentedControl.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.red], for: .selected)
Swift 3.1
UISegmentedControl.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red as Any], for: .selected)
早期的Swift版本:
UISegmentedControl.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .selected)
答案 4 :(得分:-1)
您可以实现自己的分段控件以进行自定义。
通过这种方式,可以进行很大范围的定制。 GitHub上还有许多自定义的分段控件。 你可以试试这个