gpt4 book ai didi

ios - ScrollView 在 iOS 中不滚动

转载 作者:行者123 更新时间:2023-11-28 15:24:56 25 4
gpt4 key购买 nike

我想允许用户向左或向右滚动,但只有一个屏幕远。

//
// MainViewController.swift
// Calendar
//
// Created by Andy on 7/22/17.
// Copyright © 2017 Andy. All rights reserved.
//

import UIKit

class MainViewController: UIViewController, UIScrollViewDelegate {


@IBOutlet weak var ScrollView: UIScrollView!{
didSet{
ScrollView.delegate = self
ScrollView.contentSize = CGSize(width: ScrollView.frame.width * 3, height: ScrollView.frame.height)
}
}

@IBOutlet weak var center: UIView!
@IBOutlet weak var left: UIView!
@IBOutlet weak var right: UIView!


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

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}



override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? ReusableViewController {
if let identifier = segue.identifier{
destination.currentYearOffSet = 0
destination.currentMonthOffSet = 0
switch identifier {
case "center":
destination.position = .center
case "left":
destination.position = .left
case "right":
destination.position = .right
default:
fatalError("Unexpected Segue Identifier")
}
}
}
}
}

这个 Controller 只是让滚动工作。在 scrollview 内部,有三个由其他 Controller 管理的 containerView。但这根本行不通。

为了解决这个问题,我做了以下但没有成功: 1. 检查scrollView的content size。 2. 连接 Controller 和三个容器 View 。 3. 设置了scrollView delegate 但我还没有实现任何方法。(也许是这个原因但我不知道要实现什么)

另外,当 Controller 对它们不做任何操作时,我是否需要连接这三个 containerView?

编辑:我删除了:1. contentSize 2. UIScrollViewDelegate 3. 三个 containerView 的导出。这确实使我的代码更好,但 scrollView 仍然无法滚动。

EDIT2:我添加了一个 View ,它的大小正是我希望 scrollView.contentSize 作为 scrollView 的直接 subview 的大小。而且内容高度好像解决了,因为只是说内容宽度不明确。它想为我添加的 View 添加前导和尾随约束,但我希望它在 scrollView 中水平居中。现在我需要设置前导和尾随约束,让 autoLayout 知道 contentWidth。我如何根据其父 View 的宽度设置前导和尾随 offSet,或者我应该做其他事情来解决这个问题?

最佳答案

你不需要这样设置:-

@IBOutlet weak var ScrollView: UIScrollView!{
didSet{
ScrollView.delegate = self
ScrollView.contentSize = CGSize(width: ScrollView.frame.width * 3, height: ScrollView.frame.height)
}
}

只需设置 socket @IBOutlet weak var ScrollView: UIScrollView! 并固定适当的约束(前导、尾随、顶部、底部、等宽(应等于或大于)、等高 (应该等于或大于)。

对于水平滚动如果你想水平滚动然后也固定宽度约束,这是避免自动布局错误所必需的,但在构建时检查内部占位符删除。

垂直滚动如果你想垂直滚动然后也固定高度约束,这是避免自动布局错误所必需的 但内部占位符在构建时选中删除。

注意:- 您可以根据需要同时使用两者或其中任何一个。

关于ios - ScrollView 在 iOS 中不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com