繁体   English   中英

如何使用滚动视图制作可滚动标签?

[英]how to make scrollable label using scroll view?

我想做一些类似文章的文章来阅读视图控制器,其中包含嵌套在滚动视图中的UIImage和Label。

我想如果文章内容不大,则禁用滚动功能,但是如果内容较大,我希望可以对其进行滚动,并且可以将其滚动为与标签内容高度相同的高度。

(如果内容文章不是太多,那么我不需要滚动)

在此处输入图片说明

但是如果内容很多,我希望可以滚动。 目前,如果内容如下所示,我可以滚动显示

在此处输入图片说明

我试图像下面的代码一样设置底部锚点,但是它不起作用。 这是我用于底部标签约束和视图层次结构的自动布局

在此处输入图片说明

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

}

}

不要使底部约束大于。 只需将其设置为等于。

滚动视图具有一个内容视图,其中包含所有可滚动视图。 您必须设置内容视图的高度,宽度和x,y位置。

设置内容视图的顶部,底部,前导和尾随约束。

Scrollview的滚动方向取决于contantview的高度和宽度。 如果将内容视图的宽度设置为scrollview,则scrollview在水平方向上不可滚动。 与height相同,如果将内容视图的高度设置为与scrollview的高度相等,则scrollview在垂直方向上不可滚动。

在您的情况下,必须将内容视图的宽度设置为等于scrollview的宽度,因此scrollview在水平方向上不可滚动。 内容视图根据子视图(在您的情况下为UIimageview和uilabel)自动获得高度。 因此,请设置imageview的高度,顶部,底部约束以及uilabel的顶部和底部约束,因为uilabel的高度由其文本自动设置。 在UILabel中设置number of line = 0

在此处输入图片说明

在此处输入图片说明 在此处输入图片说明

将Label底部约束设置为等于任何恒定高度(例如20)且number of lines = 0

当您使用scrollview您必须为imageview赋予高度。 您无需担心标签高度,因为它的高度将通过其内容高度来计算。

现在,您的scrollviewContentHeight = imgView.height + all labels content height 确保每个组件(imageview和每个标签)都有顶部和底部约束。

那就是你要做的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM