相关疑难解决方法(0)

如何根据其内容调整UIStackView的大小?

我希望有一个类似于<Table>HTML标记的行为,在这种意义上,框架的大小根据其内容而定.

在我的上下文中,我使用UIStackView作为UITableViewCell的内容视图.由于单元格中的项目是各种信息,因此单元格的最终高度应该是可变的.

我的策略是以编程方式将单元格构建为具有.Vertical轴的UIStackView,如下面的代码片段所示:

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

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)

    let sv = UIStackView(frame: tableview.frame)
    sv.axis = .Vertical
    cell.addSubview(sv)
    for i in information {
        let l = UILabel()
        l.text = i
        sv.addSubViewAndArrange(l)
    }

    return cell
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,单元格大小不适应内容,因此我必须自己设置单元格高度,如下所示:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return cellHeight     // a constant
}
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题?

height uitableview ios swift2 uistackview

14
推荐指数
1
解决办法
1万
查看次数

在UISTackView中使用自定义Xib

我试图通过仅构建一个可重复使用的XIB而不是构建三个视图以放入stackView来使生活更轻松

我已经创建了自定义的xib文件,并将其连接到自己的自定义类:

我的Xib文件称为UserReview.xib

标签和图像受约束放置。我希望标签能够自动调整大小,最多三行,因此标签的高度限制为> =,内容视图也可以按高度缩放(> =)

UserReview代码:

class UserReview: UIView {

@IBOutlet weak var userImage: UIImageView!
@IBOutlet weak var username: UILabel!
@IBOutlet weak var userRating: UILabel!
@IBOutlet weak var reviewText: UILabel!
@IBOutlet weak var prosText: UILabel!
@IBOutlet weak var consText: UILabel!

class func instanceFromNib() -> UIView {
    return UINib(nibName: "UserReview", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}

func setUp(review: Review){
        // TODO set userImage
        username.text = review.username!
        // TODO add rating + color
        reviewText.text = review.content!
        if let pros = …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

6
推荐指数
1
解决办法
1327
查看次数

如何增加包含 UIStackView 的 UIView 高度

我有一个包含标签的自定义视图,标签可以有多行文本。所以我在 UIStackView 中添加了该标签,现在我的 StackView 高度正在增加,但自定义视图高度没有增加。我没有在 StackView 上添加底部约束。我应该怎么做才能使我的 CustomView 高度也随着 StackView 的增加而增加。

 let myView = Bundle.main.loadNibNamed("TestView", owner: nil, options: nil)![0] as! TestView
    myView.lbl.text = "sdvhjvhsdjkvhsjkdvhsjdvhsdjkvhsdjkvhsdjkvhsjdvhsjdvhsjdvhsjdvhsjdvhsjdvhsjdvhsdjvhsdjvhsdjvhsdjvhsdjvhsjdvhsdjvhsdjvhsjdvhsdjvhsjdvhsdjvhsdjvhsdjvhsjdv"
    myView.lbl.sizeToFit()
    myView.frame = CGRect(x: 10, y: 100, width: UIScreen.main.bounds.width, height: myView.frame.size.height)
    myView.setNeedsLayout()
    myView.layoutIfNeeded()

    self.view.addSubview(myView)
Run Code Online (Sandbox Code Playgroud)

我想根据我的堆栈视图高度增加自定义视图高度。请帮忙。

ios uistackview

2
推荐指数
1
解决办法
2549
查看次数

标签 统计

ios ×3

uistackview ×2

height ×1

swift ×1

swift2 ×1

uitableview ×1

xcode ×1