2016-12-16 12 views
2

MSStickerBrowserViewControllerサブクラスを、ドキュメントが示すようにコンテナビュー(ストーリーボードを使用)に埋め込んで作成すると、stickerSizeを設定する機会がないようです。ステッカーブラウザVCはinit(coder :)で初期化されていますが、get-onlyプロパティのstickerSizeをオーバーライドする方法はありません。私はstickerSize = MSStickerSize.regularしか取得できません。MSStickerBrowserViewControllerでstickerSizeを設定する方法

ドキュメントに「ブラウザ内のステッカーのサイズをカスタマイズすることもできますが」と表示されていますが、インターフェースビルダーでプロパティを設定するコントロールはありません。

MSTickerBrowserViewControllerで初期化が使用可能であることがわかりましたが、これまでのところ、ストーリーボードを使用して必要なinit(コーダー)をオーバーライドする方法を見つけることができませんでした。 :)初期化子。

私に何か不足していますか?

ありがとうございます!

+0

ポストあなたが他の人が見にし、より良いあなたの問題は、初期化子に関してであるかを理解しようとしてきたコード。 – shallowThought

答えて

1

初期化時に設定できます。

Apples documentation.

からStickerBroweserView

init(frame: CGRect, stickerSize: MSStickerSize) 

は、指定したサイズのステッカーを含む新しいステッカーブラウザを作成します。

StickerBroweserViewController

init(stickerSize: MSStickerSize) 

提供サイズのステッカーで新しいステッカーブラウザビューコントローラを作成します。

サブクラス化するには、対応するinitイニアイザを実装します。

何とかinitのコールをrequired init?(coder aDecoder: NSCoder)から呼び出して呼び出す方法がないので、プログラムでviewControllerをインスタンス化する必要があります。

+0

ありがとうございました! – Jeff

+0

ようこそ。だから、私たちは回答をアップアップ/受け入れてくれてありがとう。 – shallowThought

+0

一つのこと:私がストーリーボードからインスタンス化すると、init(coder :)が使われるので、init(stickerSize :)を呼び出せません。私のinit(stickerSize :)をMSStickerBrowserViewControllerサブクラスでオーバーライドし、ブレークポイントを設定すると、そのイニシャライザが決して実行されないことがわかります。何かご意見は? ストーリーボードを使用せずにinit(coder :)をトリガーするのではなく、プログラムで設定する必要がありますか? – Jeff

2

これは私のために働いた:stickerSizeをアイデンティティインスペクタの「ユーザ定義のランタイムアトリビュート」セクションに追加しました。

この例では、PetStickerBrowserViewControllerはMSBrowserStickerViewControllerのサブクラスです。 stickerSizeは0に設定され、これはMSStickerSize.smallに対応します。

実行時に、ビューコントローラがストーリーボードからインスタンス化されると、そのstickerSizeプロパティは.smallに設定されます。 .regular(デフォルト)の場合は1、.largeの場合は2を使用します。

enter image description here

+0

ありがとうございました。それは私のために働いています。あなたのために1つの票を投じてください。幸運を祈ってください。 –

関連する問題