gpt4 book ai didi

IOS 10,JSQMessagesAvatarImageFactory.avatarImage(未知参数)的当前语法是什么

转载 作者:行者123 更新时间:2023-11-28 21:19:38 25 4
gpt4 key购买 nike

我正在关注一个 IOS 聊天教程,但是教程有点过时了,在教程中,讲师的语法是:

JSQMessagesAvatarImageFactory.avatarImageWithImage(UIImage(named: "pictureNameWithoutExtention"), diameter: 30)

但是这个方法已经被替换为:

JSQMessagesAvatarImageFactory.avatarImage(thisIsSomeCodeBlock<#T##JSQMessagesAvatarImageFactory#>EndSomecodeBlock)

我尝试了下面的代码和其他一些代码,但都没有用:

JSQMessagesAvatarImageFactory.avatarImage(UIImage(named: "pictureNameWithoutExtention"), diameter: 30)

JSQMessagesAvatarImageFactory.avatarImage(with image: UIImage(named:"pictureNameWithoutExtention"), diameter: 30)

此方法的当前语法是什么?它需要什么参数?

同样,当我命令+单击时,我得到了这个文档,但仍然不明白:

/**
* Creates and returns a `JSQMessagesAvatarImage` object with the specified image that is
* cropped to a circle of the given diameter and used for the `avatarImage` and `avatarPlaceholderImage` properties
* of the returned `JSQMessagesAvatarImage` object. This image is then copied and has a transparent black mask applied to it,
* which is used for the `avatarHighlightedImage` property of the returned `JSQMessagesAvatarImage` object.
*
* @param image An image object that represents an avatar image. This value must not be `nil`.
*
* @return An initialized `JSQMessagesAvatarImage` object.
*/
open func avatarImage(with image: UIImage) -> JSQMessagesAvatarImage

我在谷歌上搜索了很多关于这个,没有文档有关于这个方法的示例或演示,我的意思是文档甚至不是用简单的英语写的......为什么其他人似乎没有问题理解它们,有什么技巧吗?

最佳答案

最好的例子是位于项目中的“JSQMessagesViewContoller”

https://github.com/jessesquires/JSQMessagesViewController/tree/develop/SwiftExample

它最近已更新到 Swift3。如果您查看 demoConversation,它会以几种方式实现。

let AvatarLeonard = JSQMessagesAvatarImageFactory().avatarImage(withUserInitials: "DL", backgroundColor: UIColor.jsq_messageBubbleGreen(), textColor: UIColor.white, font: UIFont.systemFont(ofSize: 12))

这就是为没有照片的人制作头像的方法。这会创建一个带有首字母的圆圈,并使图像不为零。

// Create avatar with Placeholder Image
let AvatarJobs = JSQMessagesAvatarImageFactory().avatarImage(withPlaceholder: UIImage(named:"demo_avatar_jobs")!)

关于为什么文档如此难以理解的问题是,很难向您展示图书馆的所有可能,尤其是在不了解每个人的背景或经验的情况下。所以文档试图概述所有可能的事情,90% 的事情你不需要它是某人为特定用例添加的功能。

此外,如果 perimeter 是可选的,则不必在函数中传递它。所以很难理解什么是你绝对需要的,什么是可以省略的。随着您获得更多经验并了解正在发生的事情,这将随着时间的推移而到来。

现在回答您关于可能与您的功能无关的两种方法的问题。查看示例项目中的 chatViewController,这些行位于顶部

collectionView?.collectionViewLayout.incomingAvatarViewSize = CGSize(width: kJSQMessagesCollectionViewAvatarSizeDefault, height:kJSQMessagesCollectionViewAvatarSizeDefault )
collectionView?.collectionViewLayout.outgoingAvatarViewSize = CGSize(width: kJSQMessagesCollectionViewAvatarSizeDefault, height:kJSQMessagesCollectionViewAvatarSizeDefault )

这些设置了 CollectionViewLayout 的头像大小。这可能看起来令人困惑,因为您可以在 JSQImageFactory 方法中传递头像的大小,但 collectionViewLayout 会根据 View 中其他组件的大小处理四处移动的内容。因此,通过添加这些行,Collection View 知道将消息气泡移到上方以腾出空间并使头像出现在正确的位置。

我希望我能够足够清楚地沟通。如果您有更多问题,请随时提问。 👾 祝你好运。

关于IOS 10,JSQMessagesAvatarImageFactory.avatarImage(未知参数)的当前语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40205171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com