微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使整个视图包含可滑动视图在iOS中可滚动?

如何解决如何使整个视图包含可滑动视图在iOS中可滚动?

在我的示例应用程序中,该视图在顶部和底部包含两个UIView。对于顶部的UIView是静态的,带有红色背景,但是对于底部的UIView,包含可滑动的UICollectionView,可以在同一视图中缝合不同的子视图。

我的当前问题是我无法使整个视图可滚动。请查看附件中的屏幕快照,了解应用程序中的当前情况。

我还附加了代码,说明如何通过创建UIScrollView并将两个UIView添加到它上来使其可滚动。但这仍然对我不起作用。

Current App Behavior

private let smallView = UIView(frame: CGRect(x: 0,y: 0,width: 375,height: 400))
private let slidingTabController = UISimpleSlidingTabController()

let scrollView: UIScrollView = {
    let v = UIScrollView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = .yellow
    return v
}()

override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
    }

private func setupUI(){
    // view
    view.backgroundColor = .white

    // Setup Scroll View
    self.view.addSubview(scrollView)
    scrollView.isScrollEnabled = true
    scrollView.isUserInteractionEnabled = true
    scrollView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    scrollView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

    // Red Small View
    scrollView.addSubview(smallView)
    smallView.backgroundColor = .red
    smallView.translatesAutoresizingMaskIntoConstraints = false
    smallView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    smallView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    smallView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    smallView.heightAnchor.constraint(equalToConstant: 400).isActive = true

    // Sliding Tab View
    scrollView.addSubview(slidingTabController.view)
    slidingTabController.view.translatesAutoresizingMaskIntoConstraints = false
    slidingTabController.view.topAnchor.constraint(equalTo: smallView.bottomAnchor).isActive = true
    slidingTabController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    slidingTabController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    slidingTabController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

    
    // navigation
    navigationItem.title = "Sliding Tab Example"
    navigationController?.navigationBar.barTintColor = .orange
    navigationController?.navigationBar.isTranslucent = false
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
    navigationController?.navigationBar.barStyle = .black
    
    // MARK: slidingTabController
    slidingTabController.addItem(item: SimpleItemViewControllerOne(),title: "First") // add first item
    slidingTabController.addItem(item: SimpleItemViewControllerTwo(),title: "Second") // add second item
    slidingTabController.addItem(item: SimpleItemViewControllerThree(),title: "Third") // add other item
    slidingTabController.addItem(item: SimpleItemViewControllerThree(),title: "Forth") // add other item
    slidingTabController.addItem(item: SimpleItemViewControllerThree(),title: "Fifth") // add other item
    slidingTabController.addItem(item: SimpleItemViewControllerThree(),title: "Sixth") // add other item
    slidingTabController.addItem(item: SimpleItemViewControllerThree(),title: "Seventh") // add other item
    slidingTabController.setHeaderActiveColor(color: .white) // default blue
    slidingTabController.setHeaderInActiveColor(color: .lightText) // default gray
    slidingTabController.setHeaderBackgroundColor(color: .orange) // default white
    slidingTabController.setCurrentPosition(position: 1) // default 0
    slidingTabController.setStyle(style: .flexible) // default fixed
    slidingTabController.build() // build
}

注意:我根据从https://github.com/erthru/SlidingTabsExample

下载的示例项目修改代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。