gpt4 book ai didi

ios - 使用和不使用图像动态调整 TableViewCell 的大小

转载 作者:行者123 更新时间:2023-11-28 06:12:04 24 4
gpt4 key购买 nike

使用 swift3,我想允许用户创建图片或简单文本帖子。我的一切工作正常,除了当我创建一个纯文本的帖子时,单元格中的 UIImageView 填充了 TableViewCell 中的空间。理想情况下,如果用户创建纯文本帖子,则 TableViewCell 将仅包含标题标签的所有内容,而不是 UIImageView(参见图像)。我该怎么做。

研究: https://www.youtube.com/watch?v=zAWO9rldyUE , https://www.youtube.com/watch?v=TEMUOaamcDA , https://www.raywenderlich.com/129059/self-sizing-table-view-cells

当前代码

    func configureCell(post: Post){
self.post = post
likesRef = FriendSystem.system.CURRENT_USER_REF.child("likes").child(post.postID)
userRef = FriendSystem.system.USER_REF.child(post.userID).child("profile")

self.captionText.text = post.caption
self.likesLbl.text = "\(post.likes)"

self.endDate = Date(timeIntervalSince1970: TimeInterval(post.time))

userRef.observeSingleEvent(of: .value, with: { (snapshot) in
let snap = snapshot.value as? Dictionary<String, Any>
self.currentUser = MainUser(uid: post.userID, userData: snap!)
self.userNameLbl.text = self.currentUser.username
if let profileImg = self.currentUser.profileImage {
self.profileImg.loadImageUsingCache(urlString: profileImg)
} else {
self.profileImg.image = #imageLiteral(resourceName: "requests_icon")
}
})

// This is where I belive I need to determine wether or not the cell should have an image or not.
if let postImg = post.imageUrl {
self.postImg.loadImageUsingCache(urlString: postImg)
}

enter image description here

最佳答案

我看到您正在使用 Storyboard 来创建您的 UI,在这种情况下,您可以向 UIImageView 添加高度限制(确保将它连接到您的单元格以便在代码中使用它)并在需要时更改表格 View 的约束和高度。

class MyCell: UITableViewCell {

@IBOutlet var postImage: UIImageView!
@IBOutlet var postImageHeight: NSLayoutConstraint!
}


class ViewController: UITableViewController {

var dataSource: [Model] = []

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//Cell without image
if dataSource[indexPath.row].image == nil {
return 200
}
//Cell with image
return 350
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell

//Adjust the height constraint of the imageview within your cell
if dataSource[indexPath.row].image == nil {
cell.postImageHeight.constant == 0
}else{
cell.postImageHeight.constant == 150
}
return cell
}
}

关于ios - 使用和不使用图像动态调整 TableViewCell 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257479/

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