gpt4 book ai didi

ios - UITableView 中的 UIImageView : unexpected resizing on scroll or tap

转载 作者:行者123 更新时间:2023-11-28 08:58:47 26 4
gpt4 key购买 nike

我的一个 tableView 遇到了问题,当我解码 JSON 并将我的 imageview 设置为大小限制时它可以工作,但是当我滚动 tableview 或点击图像时,imageview 返回到其原始大小。

我使用自定义单元格来避免此类问题,但它不起作用:

第一次加载:

First load :

点击或滚动:

On tap or Scroll

我的自定义单元格:

class CustomCell: UITableViewCell {


@IBOutlet var picture: UIImageView!
@IBOutlet var title: UILabel!
@IBOutlet var price: UILabel!


override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

我的 tableView 函数:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell:CustomCell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomCell

tableView.tableFooterView = UIView(frame:CGRectZero)
tableView.separatorColor = UIColor.whiteColor()
tableView.backgroundColor = UIColor(rgb: 0x007AFF)
cell.backgroundColor = UIColor(rgb: 0x007AFF)

cell.title.text = repos[indexPath.row].title
cell.price.text = repos[indexPath.row].price

let urlString = repos[indexPath.row].picture_url! as String,
imgURL = NSURL(string: urlString as String)

// If this image is already cached, don't re-download
if let img = imageCache[repos[indexPath.row].picture_url!] {
cell.picture.image = img
cell.picture.frame = CGRectMake(5,0,61,43)
println("image présente")
}

else {

loading.startAnimating()
// The image isn't cached, download the img data
// We should perform this in a background thread
let request: NSURLRequest = NSURLRequest(URL: imgURL!)
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue, completionHandler: { (response, data, error) -> Void in
if error == nil {
// Convert the downloaded data in to a UIImage object
let image = UIImage(data: data)
// Store the image in to our cache
self.imageCache[repos[indexPath.row].picture_url!] = image
// Update the cell

dispatch_async(dispatch_get_main_queue(), {
if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) {
cellToUpdate.imageView?.image = image
cellToUpdate.imageView?.frame = CGRectMake(5,0,61,43)

println("image reload")
}
})
}
else {
println("Error: \(error.localizedDescription)")
}
})
loading.stopAnimating()
}
return cell
}

您知道问题出在哪里吗?

谢谢

最佳答案

解决问题的简单方法是在 CustomCell 中设置 AutoLayout。

您所要做的就是设置宽度和高度。像这样,

enter image description here

作为补充,最好根据需要调整UIImageView的contentMode和clipsToBounds。

关于ios - UITableView 中的 UIImageView : unexpected resizing on scroll or tap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32412817/

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