IOS 10,JSQMessagesAvatarImageFactory.avatarImage的当前语法是什么(未知参数)
IOS 10,What's the current syntax for JSQMessagesAvatarImageFactory.avatarImage(Unknow parameters)
我正在关注 IOS 聊天教程,但是教程有点过时了,
在教程中,讲师的语法是:
JSQMessagesAvatarImageFactory.avatarImageWithImage(UIImage(named: "pictureNameWithoutExtention"), diameter: 30)
但此方法已被替换为:
JSQMessagesAvatarImageFactory.avatarImage(thisIsSomeCodeBlock<#T##JSQMessagesAvatarImageFactory#>EndSomecodeBlock)
我尝试了以下代码和其他一些代码,none 其中有效:
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
我在谷歌上搜索了很多,none 文档中有关于此方法的示例或演示,我的意思是文档甚至不是用简单的英语编写的......为什么其他人似乎理解起来没问题,有什么技巧吗?
尝试使用它,但该函数似乎不接受 radius
。
JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named:"pictureNameWithoutExtention")!)
p.s.: 如果在使用该函数之前检查 unwrap the optional 可能会更好。
最好的例子是 "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 会根据视图中其他组件的大小处理四处移动的内容。因此,通过添加这些行,Collection 视图知道可以移动消息气泡以腾出空间并使头像出现在正确的位置。
我希望我能够足够清楚地传达。如果您有更多问题,请随时提问。祝你好运。
我正在关注 IOS 聊天教程,但是教程有点过时了, 在教程中,讲师的语法是:
JSQMessagesAvatarImageFactory.avatarImageWithImage(UIImage(named: "pictureNameWithoutExtention"), diameter: 30)
但此方法已被替换为:
JSQMessagesAvatarImageFactory.avatarImage(thisIsSomeCodeBlock<#T##JSQMessagesAvatarImageFactory#>EndSomecodeBlock)
我尝试了以下代码和其他一些代码,none 其中有效:
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
我在谷歌上搜索了很多,none 文档中有关于此方法的示例或演示,我的意思是文档甚至不是用简单的英语编写的......为什么其他人似乎理解起来没问题,有什么技巧吗?
尝试使用它,但该函数似乎不接受 radius
。
JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named:"pictureNameWithoutExtention")!)
p.s.: 如果在使用该函数之前检查 unwrap the optional 可能会更好。
最好的例子是 "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 会根据视图中其他组件的大小处理四处移动的内容。因此,通过添加这些行,Collection 视图知道可以移动消息气泡以腾出空间并使头像出现在正确的位置。
我希望我能够足够清楚地传达。如果您有更多问题,请随时提问。祝你好运。