gpt4 book ai didi

swift - 根据 UITableViewCell 中 UIImageView 中的图像设置 UIView 宽度

转载 作者:行者123 更新时间:2023-11-30 13:20:09 25 4
gpt4 key购买 nike

我有一个 UITableViewCell 的子类,在单元格中我有一个 UIImageView,其内容模式设置为 ScaleAspectFit。 UIImageView 具有静态高度并使用相等的前导和尾随约束,它还有一个顶部约束。

在 UIImageView 的正下方,我有一个 UIView,我希望其宽度等于缩放图像的宽度。理想情况下,我也想设置最小宽度。

我似乎无法在 ImageView 中获取图像的大小。

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

extension ViewController: UITableViewDataSource, UITableViewDelegate {

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}

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

guard let cell = tableView.dequeueReusableCellWithIdentifier("sampleCell") as? SampleCellTableViewCell else {

return UITableViewCell()
}

return cell
}
}

//单元格

class SampleCellTableViewCell: UITableViewCell {

@IBOutlet weak var theImage: UIImageView!
@IBOutlet weak var theView: UIView!

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
}
}

enter image description here

到目前为止,我已经尝试了很多东西,所以如果你有的话,我希望有一个新的想法,谢谢。

最佳答案

解决方案最终是向 View 添加宽度约束,然后为其创建一个导出,并将其常量值更改为 ImageView 中缩放图像的宽度。

//单元格

class SampleCellTableViewCell: UITableViewCell {

@IBOutlet weak var theImage: UIImageView!
@IBOutlet weak var theView: UIView!
@IBOutlet weak var theViewWidthConstraint: NSLayoutConstraint!

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
}
}

//cellForRowAtIndexPath

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

guard let cell = tableView.dequeueReusableCellWithIdentifier("sampleCell") as? SampleCellTableViewCell else {

return UITableViewCell()
}

cell.theViewWidthConstraint.constant = cell.theImage.frameForImageInImageViewAspectFit().width

return cell
}

您可以在此处找到frameForImageInImageViewAspectFit()方法定义:https://stackoverflow.com/a/36428745/4096655

enter image description here

关于swift - 根据 UITableViewCell 中 UIImageView 中的图像设置 UIView 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847689/

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