【问题标题】:ImageView as AspectFit and BottomAlignment and CornerRadiusImageView 作为 AspectFit 和 BottomAlignment 和 CornerRadius
【发布时间】:2018-01-30 14:49:24
【问题描述】:

我正在使用 UICollectionView 放置图像。
我想在以下条件下排列所有图像。
(就像 ios 文件管理器)

1.AspectFit
2. 底部对齐
3. 带拐角半径

这是参考图片。



应该用 imageView 编写什么样的代码来实现这一点?

【问题讨论】:

  • 仅供参考,您可以通过 StoryBoard 实现所有这些
  • 谢谢!!如果可以的话,请告诉我故事板上的设置项目和内容。
  • 对不起,我忘了提,但这考虑到图像是动态生成的情况。
  • 对不起,我误会你了,目标看起来比我想象的要复杂
  • 我认为方面适合和角落应该没问题。我假设所有图像都包含在相同大小的容器中。对于底部对齐,我能想到的一种方法是检查 UIImage 的大小。对于垂直图像,您使用垂直图像单元格和水平图像,您使用水平图像单元格。垂直图像单元格具有顶部、底部和 centerX 约束。水平图像单元格具有底部、前导和尾随约束。它们都有 scaleAspectFit 模式。

标签: ios swift uicollectionview uiimageview


【解决方案1】:

谢谢大家。 我通过一个非常简单的计算解决了这个问题。

//swift

/*
cW = UIImage's width
cH = UIImage's height
cS = UIViewImage's height or width(my case is square. so whichever is fine)
*/

func resizeImageView(cW w:CGFloat, cH h:CGFloat, cS s:CGFloat) -> (a:CGFloat, b:CGFloat) {
    if w > h{
        let a = (h * s) / w
        let b = (s - a)
        return (CGFloat(a), CGFloat(b))
    }else{
        let a = (w * s) / h
        let b = (s - a) / 2.0000
        return (CGFloat(a), CGFloat(b))
    }
}

之后,使用每个值改变imageView的宽、高、x、y。

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    相关资源
    最近更新 更多