我有一个名为personGalleryView.slideshowItems
我需要获得最大的图像CGSize
(按高度进行比较)。
要获取第一个条目CGSize
,我使用personGalleryView.slideshowItems.first?.imageView.image?.size
但是要获得最大的而不是我要使用的第一个:
let maxSize = personGalleryView.slideshowItems
.map { $0.imageView.image?.size }
.max(by: { $0?.height < $1?.height })
但是编译器在Cannot convert value of type 'CGFloat?' to expected argument type 'Self'
上犯了错误$0?.height
如何实现?
无论如何,谢谢!
答案 0 :(得分:2)
我建议使用.compactMap
,因为它会删除nil
的值,因此您可以毫无问题地使用.max
,
let maxSize = personGalleryView.slideshowItems
.compactMap { $0.imageView.image?.size }
.max(by: { $0.height < $1.height })