【问题标题】:Using a Custom xib in UISTackView在 UISTackView 中使用自定义 xib
【发布时间】:2018-07-11 13:23:35
【问题描述】:

我试图通过只构建一个 xib 来重用而不是构建三个视图来放入 stackView 来让我的生活更轻松

我已经创建了我的自定义 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 = review.positive_points {
            prosText.text = pros
        } else {
            prosText.text = "No Positive Points"
        }
        if let cons = review.negative_points {
            consText.text = cons
        } else {
            consText.text = "No Negative Points"
        }

    }

}

我尝试向其中添加子视图的 StackView 也具有 >= 200 的高度限制(最少一张卡),但似乎没有随着添加更多卡而调整大小。对齐是填充和分布:等间距

我尝试过使用包含评论的 StackView 的约束和对齐属性,但我能达到的最接近的是重叠视图。..

我创建视图并将视图添加到堆栈视图的方式:

        let review1 = UserReview.instanceFromNib() as! UserReview
        let review2 = UserReview.instanceFromNib() as! UserReview
        let review3 = UserReview.instanceFromNib() as! UserReview

        self.reviewStack.addArrangedSubview(review1)
        self.reviewStack.addArrangedSubview(review2)
        self.reviewStack.addArrangedSubview(review3)

据我所知,stack question StackView 的视图高度有问题吗? 我已经尝试了大多数建议的解决方案,但遇到了不同的问题..

我想要得到的结果:

(图片因某种原因消失了,稍后会检查。)

【问题讨论】:

  • 你成功了吗?

标签: ios swift xcode


【解决方案1】:

首先从 UIStackView 中移除高度限制,因为 StackView 总是根据里面的视图扩展它的高度。

将 StackView 的所有 4 个边约束设置为其父视图,并将固有大小设置为占位符。

现在以与您现在相同的方式将您的 UIView 添加到堆栈视图。不要对任何 UIView 标签和 UIView 本身设置高度约束。只需确保您已设置最顶部元素的顶部约束和底部元素的底部约束。通过这种方式,自动布局了解如何根据元素的约束和内容增加所有元素的高度。

详细了解可以关注我https://stackoverflow.com/a/57954517/3339966的回答

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 2016-03-05
    • 2015-04-01
    • 1970-01-01
    • 2018-03-16
    • 2015-11-27
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    相关资源
    最近更新 更多