私は私のコードをいくつか含んでいます。このコードは明らかにコンパイルされません。 UIButtonタイプとしてサブクラスタイプをキャストしようとすると、エラーはExpected member name or constructor call after type name
と表示されます。enumをparamとして指定したfuncから別のuibuttonサブクラスを返す方法はありますか?
AppDelegateでこのボタンfuncを呼び出して、そのタイプのUIAppearanceを変更することができます。これが私がインスタンスではなく型を返す理由です。だから、キャストを使うことができないのであれば、ジェネリックスを使うべきか、この問題をすべて間違って考えるのだろうか?どんな洞察にも感謝します。とにかく、特定のタイプのボタンを選択する方法を知りたいので、ジェネリックまたはキャストを使用してそれを行う方法があるかどうかをスタイルすることができます。
enum BtnType : Int {
case Primary
case Secondary
}
func button(type: BtnType) -> UIButton.Type {
var button: UIButton.Type
switch type {
case .Primary:
button = PrimaryButton.Type as! UIButton.Type
case .Secondary:
button = SecondaryButton.Type as! UIButton.Type
default:
button = PrimaryButton.Type as! UIButton.Type
}
return button
}
(タイプ
Button.Type
である)それぞれのメタタイプを返すためにあなたのカスタムボタンタイプの
は、関数が目的のボタン**タイプ**、またはその型の新しいインスタンスを返すようにしたいですか?そのタイプの新しいインスタンスを作成する方がずっと便利です。 –
私はこの 'PrimaryButton.appearance()。backgroundColor =" whatever colour "を実行するので、ボタンタイプを返すようにします。これは、PrimaryButtonをインスタンス化する前に発生します。しかし、あなたは別の仕事を共有して自由に感じている場合。 – user3832583