Xcode:滚动视图不起作用

Posted

技术标签:

【中文标题】Xcode:滚动视图不起作用【英文标题】:Xcode: ScrollView not working 【发布时间】:2018-03-16 12:59:51 【问题描述】:

我无法让 Scrollview 垂直工作。 我创建了一个带有 Scrollview 的简单 ViewController,它的宽度和高度与安全区域相同,并用一个大标签填充它,该标签的宽度也与安全区域相同。但它不滚动。 如果我不限制标签,我会得到一条可以水平滚动的长线。为什么它不能垂直工作?

<scene sceneID="PWe-2P-e7G">
            <objects>
                <viewController id="dVm-1J-JI9" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="AtX-Pv-6wj">
                        <rect key="frame" x="0.0" y="0.0"  />
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VNx-Wi-Vg6">
                                <rect key="frame" x="0.0" y="0.0"  />
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MqU-0Y-fM2">
                                        <rect key="frame" x="-117" y="481"  />
                                        <mutableString key="text">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</mutableString>
                                        <fontDescription key="fontDescription" type="system" pointSize="40"/>
                                        <nil key="textColor"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                </subviews>
                                <constraints>
                                    <constraint firstItem="MqU-0Y-fM2" firstAttribute="top" secondItem="VNx-Wi-Vg6" secondAttribute="top" id="rFR-UU-4Jh"/>
                                </constraints>
                            </scrollView>
                        </subviews>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        <constraints>
                            <constraint firstItem="VNx-Wi-Vg6" firstAttribute="height" secondItem="cuD-5b-v6o" secondAttribute="height" id="5PV-lk-7KG"/>
                            <constraint firstItem="VNx-Wi-Vg6" firstAttribute="width" secondItem="cuD-5b-v6o" secondAttribute="width" id="ZBA-5x-Gzn"/>
                            <constraint firstItem="MqU-0Y-fM2" firstAttribute="width" secondItem="cuD-5b-v6o" secondAttribute="width" id="v3U-b4-7cx"/>
                        </constraints>
                        <viewLayoutGuide key="safeArea" id="cuD-5b-v6o"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="rsr-pH-xUO" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="15.625" y="707.8125"/>
        </scene>

【问题讨论】:

您的标签内容大小需要大于滚动视图的大小。 具有该文本、文本大小和约束条件。至少在我的 iPad Air 上 【参考方案1】:

您的滚动视图能够水平滚动,因为标签的水平内容大小大于水平滚动视图的宽度。

我认为您的代码运行良好。要查看您的标签是否正常运行,请在标签中添加大量换行符。像 i \n am \n 等等

在标签垂直增加其大小超过滚动视图大小之后..它应该开始滚动。

【讨论】:

好吧,上面的文字和文字大小比滚动视图大(只要我限制它的宽度等于安全区域),但正如我所说,它不会滚动跨度>

以上是关于Xcode:滚动视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图中元素的 SwiftUI 动画不起作用? Xcode GM 更新

滚动视图不在自动布局 xcode 6.4 中滚动

我无法在 Swift Xcode 的视图控制器中集成水平滚动视图

Swift - UIScrollView 滚动动画在 viewDidLoad() 中不起作用

缩放在滚动视图中不起作用

iOS 滚动视图不起作用