消息视图控制器:
class MessagesVIEwController: MSMessagesAppVIEwController { var nYCStickersbroswerVIEwController: NYCStickersbroswerVIEwController! overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() nYCStickersbroswerVIEwController = NYCStickersbroswerVIEwController(stickerSize: .regular) nYCStickersbroswerVIEwController.vIEw.frame = self.vIEw.frame self.addChildVIEwController(nYCStickersbroswerVIEwController) nYCStickersbroswerVIEwController.dIDMove(toparentVIEwController: self) self.vIEw.addSubvIEw(nYCStickersbroswerVIEwController.vIEw) nYCStickersbroswerVIEwController.loadStickers() nYCStickersbroswerVIEwController.stickerbrowserVIEw.reloadData() } ... overrIDe func dIDStartSending(_ message: MSMessage,conversation: MSConversation) { // Called when the user taps the send button. print(message) // should this not contain the sticker that is peeled,dragged,and dropped into the conversation? } }
贴纸浏览器:
import Foundationimport UIKitimport Messagesclass Assticker: Mssticker { var IDentifIEr: String?}class NYCStickersbroswerVIEwController: MsstickerbrowserVIEwController { var stickers = [Assticker]() overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() } func changebrowswerVIEwBackgroundcolor(color: UIcolor) { stickerbrowserVIEw.backgroundcolor = color } func loadStickers() { createSticker(name: "brooklyn",localizedDescription: "brooklyn BrIDge Sticker") createSticker(name: "liberty",localizedDescription: "Statue of liberty Sticker") createSticker(name: "love",localizedDescription: "I love New York Sticker") createSticker(name: "mets",localizedDescription: "New York Mets Sticker") createSticker(name: "rangers",localizedDescription: "New York Rangers Sticker") createSticker(name: "subway",localizedDescription: "New York City MTA Subway Train Sticker") } func createSticker(name: String,localizedDescription: String) { guard let stickerPath = Bundle.main.pathForResource(name,ofType: "png") else { print("Call ae cab,you're intoxicated.") return } let stickerURL = URL(fileURLWithPath: stickerPath) let sticker: Assticker do { try sticker = Assticker(contentsOffileURL: stickerURL,localizedDescription: localizedDescription) sticker.IDentifIEr = "something unique" stickers.append(sticker) } catch { print("Call a cab,you're intoxicated.") } } overrIDe func numberOfStickers(in stickerbrowserVIEw: MsstickerbrowserVIEw) -> Int { return self.stickers.count } overrIDe func stickerbrowserVIEw(_ stickerbrowserVIEw: MsstickerbrowserVIEw,stickerAt index: Int) -> Mssticker { return self.stickers[index] }}这是一个子类和委托,它将绑定到MsstickerVIEw用于选择和剥离交互的轻敲和长按手势识别器.如果执行MsstickerVIEw更改这可能不再提供事件,但不应该崩溃.
import UIKitimport Messagesprotocol InstrumentedStickerVIEwDelegate: class { func stickerVIEwDIDSelect(stickerVIEw: MsstickerVIEw) func stickerVIEwDIDPeel(stickerVIEw: MsstickerVIEw)}class InstrumentedStickerVIEw: MsstickerVIEw { weak var delegate: InstrumentedStickerVIEwDelegate? overrIDe init(frame: CGRect) { super.init(frame: frame) for gestureRecognizer in gestureRecognizers ?? [] { if let tapGestureRecognizer = gestureRecognizer as? UITapGestureRecognizer { tapGestureRecognizer.addTarget(self,action: #selector(dIDTap)) } else if let longPressGestureRecognizer = gestureRecognizer as? UILongPressGestureRecognizer { longPressGestureRecognizer.addTarget(self,action: #selector(dIDLongPress)) } } } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } func dIDTap(tapGestureRecognizer: UITapGestureRecognizer) { if tapGestureRecognizer.state == .Recognized { delegate?.stickerVIEwDIDSelect(self) } } func dIDLongPress(longPressGestureRecognizer: UILongPressGestureRecognizer) { if longPressGestureRecognizer.state == .Began { delegate?.stickerVIEwDIDPeel(self) } }}总结
以上是内存溢出为你收集整理的swift – 回复MSSticker皮肤在iOS 10 iMessage贴纸应用程序全部内容,希望文章能够帮你解决swift – 回复MSSticker皮肤在iOS 10 iMessage贴纸应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)