1

ユーザーがステッカーをクリックするとアプリ内購入が提案される、非常に単純なステッカー iMessage アプリケーションを作成しようとしています。

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

ユーザーがステッカーをタップまたは剥がしたときのデフォルトの動作をオーバーライドしようとしています。

私の最初の試みは collectionView のレベルでした

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

しかし、それは機能しません

' ' と ' 'を拡張MSStickerViewして何かをする必要があるかもしれません。didTapdidLongPress

ステッカーを選択するときに iMessage の動作をオーバーライドした経験のある人はいますか?

4

2 に答える 2

0

あなたUICollectionViewCellMSStickerView(またはおそらくフレームワークをインポートしてMessagesいる)場合、didSelectItemAtデリゲートは呼び出されないようです。

たとえば、無料のステッカーとロックされたステッカーを含むステッカー拡張機能が必要な場合は、 に 2 つの異なるセルを作成しますUICollectionView。1 つには がMSStickerViewあり、2 つ目には しかありませんUIImageView。無料のステッカーがタップされた場合、iOS はUICollectionViewデリゲートを起動せずにすべてを処理します。ただし、ユーザーがロックされたステッカーをタップすると、デリゲートが起動し、didSelectItemAtデリゲートによって処理されます。

これを指し示すドキュメントはまだ見つかりません。

于 2017-10-01T20:30:10.237 に答える