gpt4 book ai didi

ios - 单元格 imageView 中的圆形图像以及如何调整它的大小?

转载 作者:行者123 更新时间:2023-11-28 10:24:32 29 4
gpt4 key购买 nike

我在一个带有标识符“Cell”的 ViewController tableView 中。这是我的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell

var url = NSURL(string: postCover[indexPath.row])
let data = NSData(contentsOfURL: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check

cell.imageView?.contentMode = .ScaleAspectFit
cell.imageView?.clipsToBounds = true

cell.imageView?.image = UIImage(data: data!)
cell.textLabel?.text = postTitle[indexPath.row]

cell.imageView?.layer.cornerRadius = 20
cell.imageView?.layer.masksToBounds = true;

return cell
}

因此,cornerRadius 有效,但问题之一是我在单元格 (cell.imageView?.image) 中的图像高度等于行高,而我不能更改此单元格图像的高度和宽度。

当我尝试

cell.imageView?.frame.size.width = 100

没有任何变化。谁知道,问题是什么?

因为我无法控制我的图像高度和宽度,所以我得到了具有边框半径的矩形,但我想要一个正方形(w:100,h:100)。

最佳答案

您可以使用此扩展裁剪图像的最长边并返回方形 UIImage:

extension UIImage {
var squared: UIImage {
let square = size.width < size.height ? CGSize(width: size.width, height: size.width) : CGSize(width: size.height, height: size.height)
let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square))
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.image = self
UIGraphicsBeginImageContext(imageView.bounds.size)
imageView.layer.renderInContext(UIGraphicsGetCurrentContext())
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
var circle: UIImage {
let square = size.width < size.height ? CGSize(width: size.width, height: size.width) : CGSize(width: size.height, height: size.height)
let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square))
imageView.contentMode = UIViewContentMode.ScaleAspectFill
imageView.image = self
imageView.layer.cornerRadius = square.width/2
imageView.layer.masksToBounds = true
UIGraphicsBeginImageContext(imageView.bounds.size)
imageView.layer.renderInContext(UIGraphicsGetCurrentContext())
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
func resizeToWidth(width:Int)-> UIImage {
let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: CGFloat(width), height: CGFloat(ceil(CGFloat(width)/size.width * size.height)))))
imageView.contentMode = UIViewContentMode.ScaleAspectFit
imageView.image = self
UIGraphicsBeginImageContext(imageView.bounds.size)
imageView.layer.renderInContext(UIGraphicsGetCurrentContext())
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}

}

关于ios - 单元格 imageView 中的圆形图像以及如何调整它的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29531103/

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