Swift - ScrollView

Swift - ScrollView 首页 / iOS入门教程 / Swift - ScrollView

在iOS应用程序中,有时,无涯教程可能需要在屏幕上显示不适合的内容。为了显示这种类型的内容,无涯教程在应用程序中使用ScrollView。 ScrollView允许用户拖动内容区域。它是UIScrollView类的实例,该类继承了UIView。

class UIScrollView : UIView

ScrollView允许滚动和缩放其包含的视图。 tableview和collectionview是UIScrollView的子类,因此,这些类提供了一种显示比屏幕大的内容的好方法。在iOS应用程序中,无涯教程使用tableview显示垂直可滚动的内容,使用collectionview显示水平可滚动的内容。

链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-scrollview.html

来源:LearnFk无涯教程网

请按照以下步骤使用界面构建器(main.storyboard)将滚动视图添加到界面。

  • 在main.storyboard上搜索ScrollView并将结果拖动到ViewController。
iOS ScrollView
  • 定义ScrollView的自动布局规则(约束),如下图所示。
iOS ScrollView
  • 将ContentView添加到ScrollView并为内容视图定义自动布局规则。
iOS ScrollView

给ScrollView的contentView约束余量0。无涯教程还需要使它们的高度和宽度相等。

iOS ScrollView

如下图所示,将ContentView的优先级降低。这是此设置中最重要的步骤。否则,scrollview不会滚动。

iOS ScrollView

无涯教程将在storyboard上使用ScrollView和ContentView。由于ScrollView可以在内容大小不适合iPhone屏幕的整个屏幕时工作。无涯教程在XCode的大小检查器中定义ViewController屏幕的大小。默认情况下,ViewController的模拟大小是固定的。但是,无涯教程需要使其自由变形,并使其高度大于下图所示的当前屏幕高度。

iOS ScrollView

将UILabel添加到ScrollView的顶部,中心和底部,并在它们之间提供垂直间距,以测试ScrollView是否正常工作。

iOS ScrollView

上面的设置将使滚动视图滚动以显示屏幕上的整个内容。

iOS ScrollView

ScrollView属性

UIScrollView类包含以下属性。

SNPropertyTypeDescription
1DelegateUIScrollViewDelegate它是ScrollView对象的委托。
2contentSizeCGSize它表示内容视图的大小。
3contentOffsetCGPoint它表示contentview的原点与ScrollView的原点之间的偏移点。
4adjustedContentOffsetUIEdgeInsets它表示内容插图和滚动视图的安全区域中的插图。
5frameLayoutGuideUILayoutGuide基于frame布局。
6contentLayoutGuideUILayoutGuide基于contentLayout布局。
7isScrollEnabledBool它表示一个布尔值,该值指示是否启用了滚动视图。
8isDirectionLockEnabledBool它表示布尔值,该布尔值指示滚动视图是否可以沿特定方向滚动。
9isPagingEnabledBool它是一个布尔值,表示是否随后在特定方向上启用了分页。
10scrollsToTopBool它是一个布尔值,它控制是否启用滚动到顶部的手势。
11bouncesBool它是一个布尔值,表示滚动视图是否在内容边缘上反弹。
12alwaysBounceVerticalBool它是一个布尔值,表示垂直滚动到达内容结尾时是否总是发生跳动。
13alwaysBounceHorizontalBool它是一个布尔值,表示在水平滚动到达内容结尾时是否总是发生跳动。
14isTrackingBool这是一个布尔值,表示用户是否触摸内容以启动滚动
15isDraggingBool它是一个布尔值,表示用户是否已开始滚动内容。
16isDeceleratingBool这是一个布尔值,当用户停止拖动或抬起手指时,内容是否在滚动视图中移动。
17decelerationRateUIScrollView.DelcelerationRate它是一个浮点值,用于确定用户抬起手指后的减速率。
18indicatorStyleUIScrollView.IndicatorStyle它代表滚动指示器的样式。
19showsHorizontalScrollsIndicatorBool它是一个布尔值,表示水平滚动指示器是否可见。
20showsVerticalScrollIndicatorBool这是一个布尔值,表示垂直滚动指示器是否可见。
21refreshControlUIRefreshControl它表示与滚动视图关联的刷新控件。
22canCancelContentTouchesBool它是一个布尔值,可以控制。
23delayContentTouchesBool这是一个布尔值,表示滚动视图是否延迟了触地手势的处理。
24directionPressGestureRecognizerUIGestureRecognizer用于方向按钮按下的基础手势识别器。
25panGestureRecognizerUIPanGestureRecongnizer平移手势的基础手势识别器。
26pinchGestureRecognizerUIPinchGestureRecognizer捏手势的基础手势识别器。
27zoomScaleCGFloat它是一个浮点值,用于缩放滚动视图内容的缩放比例。
28maximumZoomScaleCGFloat它是最大浮点值,可以应用于滚动视图内容的缩放。
29minimumZoomScaleCGFloat它是最小的浮点值,可以应用于滚动视图内容的缩放。
30isZoomBouncingBool它是一个布尔值,表示缩放是否已超过关联的缩放限制。
31isZoomingBool这是一个布尔值,表示内容视图当前是否正在缩放。
32bouncesZoomBool它是一个布尔值,表示当缩放比例超过最大或最小限制时,滚动视图是对内容缩放比例进行动画处理。

这是一个简单的示例,无涯教程将创建一个滚动视图和contentView。无涯教程将在滚动视图中创建两个UIViews以显示实际内容。要使滚动视图,可滚动,无涯教程需要将ViewController大小从固定更改为FreeForm,并在视图之间定义一些垂直间隔。

设置ScrollView,ContentView,UIViews和提交按钮的自动布局规则。

ScrollView的Autolayout规则

iOS ScrollView

ContentView的Autolayout规则

iOS ScrollView

ContentView的Autolayout规则

iOS ScrollView

UserDetailView的Autolayout规则

iOS ScrollView

main.storyboard

iOS ScrollView

ViewController.swift

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var adminDetailView: UIView!
    
    @IBOutlet weak var userDetailView: UIView!
    
    @IBOutlet weak var submitBtn: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
       //加载视图后进行任何其他设置。
        adminDetailView.layer.cornerRadius = 10
        adminDetailView.layer.borderColor = UIColor.black.cgColor
        adminDetailView.layer.borderWidth = 1
        adminDetailView.layer.shadowOffset = CGSize(width: 2, height: 2)
        adminDetailView.layer.shadowColor = UIColor.black.cgColor
        adminDetailView.layer.shadowRadius = 5
        
        userDetailView.layer.cornerRadius = 10
        userDetailView.layer.borderColor = UIColor.black.cgColor
        userDetailView.layer.borderWidth = 1
        userDetailView.layer.shadowOffset = CGSize(width: 2, height: 2)
        userDetailView.layer.shadowColor = UIColor.black.cgColor
        userDetailView.layer.shadowRadius = 5
        
        submitBtn.layer.cornerRadius = 10
        submitBtn.layer.borderColor = UIColor.black.cgColor
        submitBtn.layer.shadowColor = UIColor.black.cgColor
        
    }

}

输出:

iOS ScrollView

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

邱岳的产品实战 -〔邱岳〕

Spark核心原理与实战 -〔王磊〕

大厂晋升指南 -〔李运华〕

恋爱必修课 -〔李一帆〕

说透5G -〔杨四昌〕

陈天 · Rust 编程第一课 -〔陈天〕

朱涛 · Kotlin编程第一课 -〔朱涛〕

大厂广告产品心法 -〔郭谊〕

LangChain 实战课 -〔黄佳〕

好记忆不如烂笔头。留下您的足迹吧 :)