0

我正在为自定义表情符号等键盘应用程序制作带有图像的 iMessage 应用程序。我在 iMessage 故事板上设置了插座并连接了按钮。在我的 MessageViewController 中,我的 IBOUlet 中有以下代码。我想将图像调整得更小,但我似乎无法弄清楚这一点。任何帮助是极大的赞赏!

@IBAction func button(_ sender: Any) { 
    label.text = "button pressed"
    let layout = MSMessageTemplateLayout()
    layout.image = UIImage(named: "270a.png")
    let message = MSMessage()
    message.layout = layout
    activeConversation?.insert(message, completionHandler: nil) 
}
4

1 回答 1

0

当您将图像添加到消息模板时,您可以请求宽度和高度,但它会将图像放大或缩小(尊重纵横比)到它认为最好的大小。

如果您拥有的图像资源不是您想要的大小,您可以尝试在内存中创建一个新图像,但MSMessageTemplateLayout会根据需要对其进行修改。

let original = UIImage(named: "background")

// use CGContext to create new image in memory
// 10 x 10 is super small, so messages app will scale this up
let image = CGSize(width: 10, height: 10).image { context, frame in

    original?.draw(in: frame, blendMode: .luminosity, alpha: 1)
}

let message = MSMessage()
let layout = MSMessageTemplateLayout()

layout.image = image
message.layout = layout

self.activeConversation?.insert(message, completionHandler: nil)

我喜欢使用这个扩展来使它更容易使用 CGContext: https ://gist.github.com/mathewsanders/94ed8212587d72684291483905132790

于 2017-01-07T02:22:24.843 回答