私は2つのポッド:DropDown
とSwiftyUtils
を使用しています。拡張機能は、アクセスしたいプロパティを隠します。回避策?
DropDown
は、DropDown
と呼ばれるUIView
サブクラスに追加されます。 DropDown
クラスは独自のwidth
プロパティを定義します。 frame
を設定する代わりに、クライアントコードはこのプロパティを使用してドロップダウンメニューの幅を設定する必要があります。それは、このように定義されています
public var width: CGFloat? {
didSet { setNeedsUpdateConstraints() }
}
SwiftyUtils
は、他の一方で、すべてのUIView
sの拡張子を追加しました。拡張機能には、width
プロパティもあります。 これは、 のプロパティは、人々が少ないコードを書くことができるように単にframe.width
を返しています。このように定義されています
public var width: CGFloat {
get { return frame.width }
set { frame = frame.with(width: newValue) } // frame.with() is defined in SwiftyUtils as well
}
私はDropDwon
で定義されたwidth
プロパティを使用してDropDown
のメニューの幅を設定しようとすると、問題が来ます。コンパイラは、モジュール内の拡張子に定義されたwidth
プロパティを意味すると考えます。
コンパイラにwidth
がDropDown
で、width
がSwiftyUtils
ではないことをコンパイラに伝えるにはどうすればよいですか?