回答
變色和分段控制的文本嘗試:
Objective-C的:
NSArray *array = [segmentedControl subviews];
[[array objectAtIndex:2] setTintColor:[UIColor redColor]];
[[array objectAtIndex:1] setTintColor:[UIColor greenColor]];
[[array objectAtIndex:0] setTintColor:[UIColor blueColor]];
斯威夫特:
let array = segmentedControl.subviews
array[2].tintColor = UIColor.redColor()
array[1].tintColor = UIColor.greenColor()
array[0].tintColor = UIColor.blueColor()
請注意,subviews
與用戶界面相反。
您可以以同樣的方式自定義邊框:
let array = segmentedControl.subviews
array[0].layer.borderWidth = 5 // change thickness of border
array[0].layer.cornerRadius = 4 //change corner radius
在最後一行,你犯了一個錯字。 'objectAtIndex:1'應該是'objectAtIndex:2' – NSNoob
謝謝你「njuri」。你已經給出了最好的解決方案。再次感謝 –
@njuri太好 –
更新
案例1 - 中segmentedControl
每個元素的自定義邊框顏色代碼
extension UIView {
///Add border color with corners
func addBorderWithColor(color: UIColor, roundingCorners: UIRectCorner) {
self.layer.borderWidth = 1
self.layer.borderColor = color.CGColor
self.addRoundingCorners(roundingCorners)
}
///Use corner radius depending on UIRectCorner
private func addRoundingCorners(roundingCorners: UIRectCorner) {
let path = UIBezierPath(roundedRect:self.bounds, byRoundingCorners:roundingCorners, cornerRadii: CGSizeMake(4, 4))
let maskLayer = CAShapeLayer()
maskLayer.path = path.CGPath
self.layer.mask = maskLayer
}
}
let segmentedControl = UISegmentedControl(items: ["Red", "Green", "Blue"])
segmentedControl.subviews[0].addBorderWithColor(UIColor.blueColor(), roundingCorners: [.TopRight, .BottomRight])
segmentedControl.subviews[1].addBorderWithColor(UIColor.greenColor(), roundingCorners: [])
segmentedControl.subviews[2].addBorderWithColor(UIColor.redColor(), roundingCorners: [.TopLeft, .BottomLeft])
segmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], forState: UIControlState.Normal)
遊樂場
案例2 - 擺脫邊框
代碼
let segmentedControl = UISegmentedControl(items: ["Red", "Green", "Blue"])
//Change Text Attributes (Changing textColor to black)
//**Be sure to manage all the UIControlState for these attributes if you need to customize this for other states
segmentedControl.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], forState: UIControlState.Normal)
//Change tintColor to clear, in order to set border invisible
segmentedControl.tintColor = UIColor.clearColor()
的遊樂場
原來的答案
答案是NO
無法刪除的UISegmentedControl
邊框您可以創建使用UIButton
取得成就,你在找什麼自定義控件。
在UISegmentedControl
狀態,您可以刪除項目之間的分隔在UISegmentedControl
,或者您可以更改tintColor(BORDERCOLOR)
- 1. 如何刪除邊界
- 2. 從JSON中刪除邊界引用
- 3. 從HTML表中刪除所有邊界
- 4. 從位圖中刪除透明邊界
- 5. 如何刪除UINavigationBar的邊界底部?
- 6. 地圖:如何刪除省份邊界
- 7. 如何從最後孩子中刪除邊界?
- 8. 如何從WebClient.UploadFile中刪除multipart/form-data;邊界?
- 9. 蝦:如何從表中刪除所有邊界?
- 10. 刪除Matlab繪圖邊界
- 11. 刪除UINavigationBar的邊界
- 12. 刪除輸入的邊界
- 13. 刪除ImageView的邊界
- 14. 如何從UIButton中刪除左邊距?
- 15. 如何從Fancybox 2中刪除邊框?
- 16. 邊界在Matlab中刪除圖像
- 17. 邊界不會在html表中刪除
- 18. 在Quicksort算法中刪除邊界 - JAVA
- 19. 刪除數字識別的邊界框內的邊界框
- 20. CSS:如何刪除表中一行的左右邊界?
- 21. 如何刪除iOS中的推送過渡邊界?
- 22. 如何刪除Emacs中窗口之間的垂直邊界
- 23. 如何刪除Git Bash中顯示的文本邊界?
- 24. 如何刪除Bootstrap/css中的跨度邊界深度?
- 25. 如何刪除jquery中的數組邊界引號?
- 26. 如何刪除jqplot中圖形的邊界?
- 27. 如何刪除matlab中字符識別的邊界?
- 28. 從HBITMAP中刪除邊框
- 29. 從JComboBox中刪除邊框
- 30. 從數據表中刪除垂直邊界線
你想給自定義邊框給它? –
如果你刪除邊框,那麼它只會顯示文字? – vaibby
http://www.code4app.net/ios/Customizable-control-based-on-UISwitch-and-UISegmentedControl-written-in-Objecti/54460e6be24741786a848c02 – vaibby