2017-07-01 3 views
1

私は非常にシンプルなステッカーiMessageアプリケーションを作成しようとしていますが、ユーザーがステッカーの一部をクリックしてアプリ内購入を提案しています。iMessageでステッカーの選択をブロックする方法

UIViewControllerUICollectionViewDelegateUICollectionViewDataSource(ソース:https://github.com/jelenakrmar/customStickerApp)を実装するカスタムビューコントローラがあります。

これで、ユーザーがステッカーをタップまたははがしたときのデフォルトの動作を無効にしようとしています。

私の最初の試みはcollectionView

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
// open the in-app purchase window 
} 

のレベルであったが、それは

は、たぶん私は「 didTap」と「 didLongPress」で何かを MSStickerViewを拡張し、実行する必要があります動作しません。

ステッカーを選択するときに誰かがiMessageの動作を上書きする経験はありますか?

答えて

0

あなたUICollectionViewCellMSStickerView(あるいは輸入Messagesフレームワーク)を持っている場合には、のように思えるが、didSelectItemAtデリゲートが呼び出されません。

たとえば、無料のステッカーとロックされたステッカーを使用してステッカー拡張を使用する場合は、UICollectionViewに2つの異なるセルを作成します。 1つはMSStickerView、もう1つはUIImageViewです。無料のステッカーをタップすると、iOSは解雇されていないUICollectionViewデリゲートですべてを処理します。ただし、ユーザーがロックされたステッカーをタップすると、デリゲートが起動し、didSelectItemAtデリゲートによって処理されます。

まだこれを指摘する文書はありませんでした。

+0

はい、私は同じ結論に達しました:あなたはMSStickerViewで2つの異なる種類のものを必要とします。他のものは別のもの(例えばUIImageView)です。問題は、UIImageViewでapngをアニメーション化できないことです。私はこれのためにサードパーティライブラリを使用しようとしましたが、パフォーマンスが損なわれ、アプリケーションが拒否されました。私はUIImageViewを使用して終了しましたが、これは理想的ではありません(ユーザーはアニメステッカーを購入する前にそれを見ることができません)。私はあなたの答えを真と記します。 – tencnivel

0

私は同様の状況にあり、UICollectionViewCellのMSStickerViewを介してステッカーをロードするUICollectionControllerを持っています。

私はUICollectionViewCellをサブクラス化し、セルcontentViewにMSStickerViewを配置しました。その後、私はタッチを無効にしました:

(stickerView)?.isUserInteractionEnabled = false 

collectionViewController関数didSelectItemAtが機能するようになりました。

関連する問題