申し訳ありませんが、私はSwiftで扱っている構造体や試行錯誤に精通していませんが、私がする必要があるのは、iMessageの画像部分が設定されているという意味で、ステッカーに。Swiftの構造体に問題があり、URLからUIImageを作成していますか?
私はAppleのドキュメントとhttps://www.captechconsulting.com/blogs/ios-10-imessages-sdk-creating-an-imessages-extensionをぼんやりしていますが、これを行う方法や実際に構造がどのように機能するのか分かりません。私は構造体を読み上げましたが、それはAppleがサンプルコード(Appleでダウンロード可能)で行っていることを達成するのに役立ちませんでした
アップルは、まず構造体をプロパティとして取り上げてメッセージを作成します私はステッカーを取る代わりに
guard let conversation = activeConversation else { fatalError("Expected a conversation") }
//Create a new message with the same session as any currently selected message.
let message = composeMessage(with: MSSticker, caption: "sup", session: conversation.selectedMessage?.session)
// Add the message to the conversation.
conversation.insert(message) { error in
if let error = error {
print(error)
}
}
そして、彼らはメッセージを作成する(これはサンプルコードから直接である)、この操作を行います。
fileprivate func composeMessage(with iceCream: IceCream, caption: String, session: MSSession? = nil) -> MSMessage {
var components = URLComponents()
components.queryItems = iceCream.queryItems
let layout = MSMessageTemplateLayout()
layout.image = iceCream.renderSticker(opaque: true)
layout.caption = caption
let message = MSMessage(session: session ?? MSSession())
message.url = components.url!
message.layout = layout
return message
}
}
は、基本的には、この行は、Imは私が設定する必要がありますように問題を持つものです私のステッカー画像:
layout.image = iceCream.renderSticker(opaque: true)
Appleは、私は彼らのステッカーのうち、画像部分を引っ張ってrenderSticker
に理解していない全体の複雑な関数のことをして、私は彼らの方法を試してみましたが、私はこれが優れていると思う:
let img = UIImage(contentsOfURL: square.imageFileURL)
layout.image = ing
layout.imageはUIImageが必要ですが、私はステッカーからimageFileURLを取得できますが、これをUIImageに取得することはできません。使用可能なオーバーロードに一致しないというエラーが表示されます。
ここでは何ができますか?ステッカーからメッセージに画像を挿入するにはどうしたらいいですか? imageFileURLから画像を取得するにはどうすればよいですか?
質問の最後にある 'UIImage'イニシャライザに関する質問だけでは、他の無関係の情報をすべて投稿したのはなぜですか?あなたの質問を関連する部分だけに集中させてください。 – rmaddy
申し訳ありませんが、私はそれがすべてiMessageと関連し、構造体を必要とするかもしれないと思った – skyguy