我想制作类似文章的内容来阅读包含UIImage的视图控制器和嵌套在滚动视图中的标签。
我想如果文章内容不大,滚动功能被禁用,但如果内容很大,我希望它可以滚动,并且可以滚动为标签内容高度的相同高度。
(如果内容文章不是太多,那么我不需要滚动)
但如果内容很多,那么我希望我可以滚动。目前,如果内容很大,我可以滚动
我试图像下面的代码一样设置底部锚点,但它不起作用。这是我用于底部标签约束和视图层次结构的自动布局
class NotificationDetailVC:UIViewController {
@IBOutlet weak var notificationTitleLabel: UILabel!
@IBOutlet weak var notificationImage: UIImageView!
@IBOutlet weak var notificationDateLabel: UILabel!
@IBOutlet weak var notificationScrollView: UIScrollView!
@IBOutlet weak var notificationContentLabel: UILabel!
var dataNotification : [String:Any]?
override func viewDidLoad() {
super.viewDidLoad()
notificationScrollView.contentLayoutGuide.bottomAnchor.constraint(equalTo: notificationContentLabel.bottomAnchor).isActive = true
}
}
答案 0 :(得分:1)
不要将约束限制在大于。只需将其设为等于。
滚动视图有一个包含所有可滚动视图的内容视图。您必须设置内容视图的高度,宽度和x,y位置。
将top,bottom,leading和trailing约束设置为内容视图。
Scrollview的滚动方向表示了contantview的高度和宽度。如果您将内容视图的宽度设置为等于scrollview,则scrollview在水平方向上不可滚动。高度相同,如果您将内容视图的高度设置为等于scrollview的高度,则scrollview在垂直方向上不可滚动。
在您的情况下,您必须将内容视图的宽度设置为等于scrollview的宽度,因此scrollview在水平方向上不可滚动。内容视图根据子视图自动获取高度(在您的情况下为UIimageview和uilabel)。因此,设置图像视图的高度,顶部,底部约束以及uilabel的顶部和底部约束,因为uilabel高度由其文本自动设置。在UILabel中设置number of line = 0
。
答案 1 :(得分:0)
设置标签底部constaint等于任何恒定高度(比如20)& number of lines = 0
。
当您使用scrollview
时,您必须为imageview
提供高度。您不必担心标签高度bcz,其高度将根据其内容高度计算。
现在是你的scrollviewContentHeight = imgView.height + all labels content height
。确保每个组件(imageview和每个标签)都有顶部和底部约束。
这就是你所要做的一切。