から私はこのサブビューにプロパティを追加するときに、それはアプリ内で他のUISegmentedControlsから再利用可能な拡張から私のUISegmentedControl以下のサブビューを追加しようとしています。セグメント化されたコントロールサブビュー延長
それは正しい場所に表示されますが、何らかの理由で時には、以下のいくつかのセグメントと上に表示されます。何か不足していますか?私の拡張機能でこれまで
、それは私が持っているものです。
import UIKit
extension UISegmentedControl {
func addBackgroundView() {
let backgroundView = UIView();
backgroundView.frame = self.bounds;
backgroundView.backgroundColor = UIColor.purple;
self.insertSubview(backgroundView, belowSubview: self);
}
}
そして、私はのViewControllerでviewDidLoadメソッドから拡張機能を呼び出します。
self.segmentedControlUnit.addBackgroundView();
このリンクを試す:http://www.richardhsu.me/posts/2015/01/26/segmentedcontrol.html – KKRocks
回答のコメントを読んで、最良の解決策は(1) UISegmentedControlの代わりにUIViewをサブクラス化する、(2)UISegementedControlをサブビューとして追加する、(3)UIViewとUISegmentedControlの各クラスに必要なものを公開し、(4)多かれ少なかれ、*拡張*の代わりに*順序と*サブクラス化*を逆転させることで、望ましい結果を得ることができますか? – dfd