我試圖從一個擴展添加下面我UISegmentedControl一個子視圖,所以當我添加更多的屬性來此子視圖可以從應用程序內的其他UISegmentedControls被重用。分段控制子視圖從擴展
它出現在正確的地方,但由於某些原因有時會出現上述一些段,有時下面。我錯過了什麼嗎?
所以在我的擴展到目前爲止,這是我有:
import UIKit
extension UISegmentedControl {
func addBackgroundView() {
let backgroundView = UIView();
backgroundView.frame = self.bounds;
backgroundView.backgroundColor = UIColor.purple;
self.insertSubview(backgroundView, belowSubview: self);
}
}
然後,我稱之爲擴展功能從viewDidLoad方法中的視圖控制器:
self.segmentedControlUnit.addBackgroundView();
嘗試此鏈接:http://www.richardhsu.me/posts/2015/01/26/segmented-control.html – KKRocks
通過閱讀答案中的評論,最好的解決方案是(1)子類的UIView而不是UISegmentedControl,(2)添加UISegementedControl作爲一個子視圖,(3)揭露那些你需要每個類的東西 - 的UIView和UISegmentedControl - (4)加入希望這些自定義的東西呢?或多或少,你是否可以通過反轉*順序和*子類*而不是*擴展*來獲得所需的結果? – dfd