ios - swift 8 iOS 数据在动态添加数据时在 ScrollView 中被裁剪

标签 ios swift dynamic uiview scrollview

enter image description here

enter image description here

您好,我正在开发小型 IOS 应用程序,其中我使用带有自动布局的 ScrollView 。在滚动内部我添加了另外两个 View 。我正在使用 IB 和自动布局约束。我以垂直方式在侧面一个接一个地添加两个 View 。我添加了外部约束,例如尾随、前导、顶部、底部空间。我还为两个 View 添加了高度限制。直到这一切都工作正常。

但是我的passengerView有一些动态内容。因此,我想让高度约束大于等于而不是等于。

我的代码是:-

@IBOutlet weak var secondView: UIView!
@IBOutlet weak var scrollView: UIScrollView!

@IBOutlet weak var passengerView: UIView!

@IBOutlet weak var detailView: UIView!

override func viewDidLoad() {
        super.viewDidLoad()

let nameLabel = UILabel(frame: CGRect(x: 0, y: (self.name.frame.height * CGFloat(index) + CGFloat(49)), width: 161, height: 32))
                                    let idLabel = UILabel(frame: CGRect(x: 161, y: (self.name.frame.height * CGFloat(index) + CGFloat(49)), width: 161, height: 32))
                                   // nameLabel.text = dsdh?["name"] as? String
                                    nameLabel.layer.borderWidth = 1
                                    nameLabel.layer.borderColor = UIColor.black.cgColor
                                    nameLabel.textAlignment = .center;
                                    self.passengerView.addSubview(nameLabel)
                                    //idLabel.text = dsdh?["document_Type"] as? String
                                    idLabel.layer.borderWidth = 1
                                    idLabel.layer.borderColor = UIColor.black.cgColor
                                    idLabel.textAlignment = .center;
                                    self.passengerView.addSubview(idLabel)
                                    self.secondView.addSubview(self.passengerView)
                                    self.detailView.frame = CGRect(x: self.detailView.frame.origin.x, y: self.detailView.frame.origin.y + CGFloat(32) , width: self.detailView.frame.size.width, height: self.detailView.frame.size.height)
                                      self.secondView.addSubview(self.detailView)
                                    //self.scrollView.addSubview(self.detailView)
                                    self.secondView.frame = CGRect(x: self.secondView.frame.origin.x, y: self.secondView.frame.origin.y , width: self.secondView.frame.size.width, height: self.secondView.frame.size.height + CGFloat(5))

                                    self.scrollView.addSubview(self.secondView)
                                    //self.scrollView.contentSize = CGSize(width: self.scrollView.frame.size.width , height: self.scrollView.frame.size.height + CGFloat(32))
                                    self.scrollView.frame = CGRect(x: self.scrollView.frame.origin.x, y: self.scrollView.frame.origin.y , width: self.scrollView.frame.size.width, height: self.scrollView.frame.size.height + CGFloat(0))
                                    self.view.frame = CGRect(x: self.view.frame.origin.x, y: self.view.frame.origin.y , width: self.view.frame.size.width, height: self.view.frame.size.height + CGFloat(0))

}

最佳答案

最好的方法如下:

  1. 实现 UIScrollView这是对 Leading, Trailing, Top, Bottom 的约束主要 View 的限制。
  2. 添加UIViewUIScrollView并将其限制为 Leading, Trailing, Top, Bottom您的UIScrollView 。重要的是还要限制这个UIView's宽度到您的主视图,而不是您的 ScrollView !这样UIView将为您服务 Content View对于UIScrollView如果您在 Interface Builder 中执行此操作,则此步骤是强制性的!
  3. 添加UIStackView给您Content View (上一步的 View )并将其限制为 Leading, Trailing, Top, Bottom Content View的。
  4. 添加您所有的 UILabels ,你的Detail View , QR Code ViewPassenger View作为 child 对此UIStackView .
  5. 因为您只想要您的 Passenger View要具有动态高度,您可以设置 UIStackView's轴至VerticalContent ModeFill 。然后,您将为 UIStackView 的所有子代提供高度。 除了Passenger View

这样Content Size您的UIScrollView将根据 UIStackView 的高度进行调整和 UIStackView 的高度将根据 Passenger View 所需的高度进行调整.

关于ios - swift 8 iOS 数据在动态添加数据时在 ScrollView 中被裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42312149/

相关文章:

ios - 如何在 iOS 中显示 pdf 下载的加载状态

iphone - Flash中IOS开发中的default.png图片

ios - 如何最好地按时间戳保存聊天中的消息?

swift - didUpdateLocations 停止更新

dynamic - 如何使用动态字段名称循环遍历动态 itab 名称?

C++:在重载 ostream 时引用 2D 数组元素时崩溃 >>

ios - 双@synchronized : is it needed?

ios - 从 Swift 的 Objective-c 基础 View Controller 继承

swift - 在Swift中获取类型的所有嵌套类型(作为元类型引用)

string - Swift - 字符不是字符串的子类型