将 UIScrollView 中的内容视图固定到其底部而不是其顶部边缘

     2023-03-16     123

关键词:

【中文标题】将 UIScrollView 中的内容视图固定到其底部而不是其顶部边缘【英文标题】:Pin content view in UIScrollView to its bottom rather than its top edge 【发布时间】:2018-05-21 18:21:19 【问题描述】:

默认情况下,UIScrollView 将其内容视图固定在其顶部边缘,即当您将一些内容添加到具有垂直滚动轴的滚动视图并且内容的总高度小于整个滚动视图的高度时,内容显示在滚动视图的顶部。

有没有办法改变这种行为并让滚动视图将其内容视图固定在底部?

(换句话说:我希望内容“从底部增长”。)



【问题讨论】:

你使用的是普通的 UIScrollView 还是 UITableView?如果您使用的是普通滚动视图,您目前如何添加和定位子视图? 您是否希望滚动视图中的特定视图固定在底部,而其他内容滚动到其下方? 这是一个通用的 UIScrollView,并不特定于表格视图或任何东西。我将一个视图作为子视图添加到滚动视图中,并使用布局约束将其固定到其超级视图边界。 我希望内容视图和滚动视图中的所有内容都能正常滚动,视图没有固定位置。 【参考方案1】:

可以在滚动视图的某个位置添加视图

这是简单的示例代码:

class ViewController: UIViewController 

    var scrollView: UIScrollView!
    var views: UIView!

    override func viewDidLoad() 
        super.viewDidLoad()

        views = UIView.init()
        scrollView = UIScrollView.init()


        scrollView.addSubview(views)
        self.view.addSubview(scrollView)

        addViewToBottomScroll()
    

    override func viewDidLayoutSubviews() 
        super.viewDidLayoutSubviews()
        views.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 1300)
        scrollView.frame = self.view.frame
        scrollView.contentSize = views.frame.size
    

    func addViewToScrollView() 
        let label = UILabel(frame: CGRect(x: 0, y: 10, width: self.view.frame.width, height: 40))
        label.text = "ScrollView"
        label.textAlignment = .center

        views.addSubview(label)

        let bottomView = UIView(frame: CGRect(x: 15.0, y: 950.0, width: self.view.frame.width - 30, height: 300))
        bottomView.backgroundColor = .yellow

        views.addSubview(bottomView)
    

希望能回答你的问题

【讨论】:

不,这不是我的问题的答案。您设置为 1300 点高度的 views 滚动视图的内容视图。我想将该内容视图固定到底部(当它比滚动视图低时),而不是它的任何子视图。【参考方案2】:

通常的解决方法是翻转滚动视图,然后翻转内容视图。

例如

        scrollView.transform = CGAffineTransform(scaleX: 1, y: -1)
        contentView.transform = CGAffineTransform(scaleX: 1, y: -1)

我自己真的很想知道一个更清洁的解决方案。

【讨论】:

UIScrollview 底部的额外空白区域

】UIScrollview底部的额外空白区域【英文标题】:ExtrawhitespaceatbottomofUIScrollview【发布时间】:2020-11-1722:02:52【问题描述】:我的ScrollView被固定到安全区域的所有4面,并且是屏幕的大小。我将内容视图(滚动视图内的视图)固定到... 查看详情

将动态高度设置为 UIScrollView Swift

】将动态高度设置为UIScrollViewSwift【英文标题】:SettingDynamicHeighttoUIScrollViewSwift【发布时间】:2017-04-1802:51:17【问题描述】:如何根据我的ScrollView中的内容/子视图设置UIScrollView的动态高度这是我得到的输出:【问题讨论】:【... 查看详情

UIScrollView 不会随着里面的内容视图滚动

】UIScrollView不会随着里面的内容视图滚动【英文标题】:UIScrollViewwon\'tscrollwithcontentviewinside【发布时间】:2016-09-1010:54:18【问题描述】:UIScrollView有问题。我有这样的设置:我在第一张图片中固定了一个滚动视图,包括尾随、前... 查看详情

以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部

】以编程方式将UIScrollView滚动到Swift中的子UIView(子视图)的顶部【英文标题】:ProgrammaticallyscrollaUIScrollViewtothetopofachildUIView(subview)inSwift【发布时间】:2016-08-1812:16:55【问题描述】:我的UIScrollView中有一些屏幕内容,它们只能垂... 查看详情

uiscrollview 不能滚动到底部

】uiscrollview不能滚动到底部【英文标题】:uiscrollviewcan\'tscrolltobottom【发布时间】:2017-12-1803:42:41【问题描述】:我已经构建了一个这样的UIScrollView:主要思想是Labelcontent和LabelRe根据内容大小自动固定高度,并包含在视图中。在... 查看详情

滚动 UIScrollView 以适应 iOS 中的键盘

】滚动UIScrollView以适应iOS中的键盘【英文标题】:ScrollingaUIScrollViewtoaccommodatethekeyboardiniOS【发布时间】:2014-02-1905:43:46【问题描述】:我有一个滚动视图,其中包含1500pt高的内容视图。它滚动的屏幕是标准iPad纵向屏幕(1024)。我... 查看详情

如何在 UIScrollView 内使用 Autolayout 将 UIImage 视图缩放为正方形

】如何在UIScrollView内使用Autolayout将UIImage视图缩放为正方形【英文标题】:HowtoscaleaUIImageviewtoasquarewithAutolayoutinsideaUIScrollView【发布时间】:2014-09-1019:27:50【问题描述】:我一直在努力学习自动布局(终于)。我想要一个垂直滚动... 查看详情

UIScrollView + 在滚动屏幕之前将项目固定到顶部

】UIScrollView+在滚动屏幕之前将项目固定到顶部【英文标题】:UIScrollView+pinitemstotopbeforescrollingoffscreen【发布时间】:2013-10-0818:24:08【问题描述】:我正在复制Passbook/iOS7提醒界面,其中有一堆堆叠在一起的卡片,偏移以便卡片的... 查看详情

在 UIScrollView 上放置自定义层

】在UIScrollView上放置自定义层【英文标题】:PlacingcustomlayeroverUIScrollView【发布时间】:2014-01-2723:34:24【问题描述】:我正在尝试构建一个特殊的UIScrollView,其中内容区域将包含一个边界大于屏幕的图像,并且用户将拖动滚动视... 查看详情

使用 UIScrollView,在缩小时,如何将内容视图保持在中心?

】使用UIScrollView,在缩小时,如何将内容视图保持在中心?【英文标题】:UsingUIScrollView,whenZoomingOut,howcanIkeepthecontentviewatthecenter?【发布时间】:2012-03-0103:20:25【问题描述】:最小刻度为0.5最大比例为2.0我需要为UIScrollView使用更... 查看详情

调整 UIView 的大小以适应 uiScrollView 中的所有内容

】调整UIView的大小以适应uiScrollView中的所有内容【英文标题】:SizeaUIViewtofitallofitscontentsinauiScrollView【发布时间】:2016-09-1816:59:58【问题描述】:我在调整uiScrollView内的uiView大小以包含其所有子视图时遇到问题。这是我的布局图... 查看详情

带有自动布局的 UIScrollView 中的 UITableViews

】带有自动布局的UIScrollView中的UITableViews【英文标题】:UITableViewswithinaUIScrollViewwithAutolayout【发布时间】:2013-06-1014:05:18【问题描述】:我正在尝试使用iOS6和自动布局将UITableViews嵌入到UIScrollView中。在iOS6之前,我已经多次使用... 查看详情

如何锚定 UIScrollView 的子视图,如移动 Safari 中的 URL 栏?

】如何锚定UIScrollView的子视图,如移动Safari中的URL栏?【英文标题】:HowdoianchorsubviewsofaUIScrollViewliketheURLbarinmobilesafari?【发布时间】:2009-12-0319:59:59【问题描述】:我想做一些类似于移动safari在页面加载时将其URL栏固定在屏幕顶... 查看详情

将视图加载到 UIScrollView 并让里面的内容正常工作

】将视图加载到UIScrollView并让里面的内容正常工作【英文标题】:LoadingaviewintoaUIScrollViewANDgettingthecontentinsidetowork【发布时间】:2011-04-1119:52:44【问题描述】:我正在开发一个基于标签的应用程序。我有一个名为DetailsView.m的视图... 查看详情

UIScrollView 右侧的 Autolayout Pin 视图

】UIScrollView右侧的AutolayoutPin视图【英文标题】:AutolayoutPinviewfromrightofUIScrollView【发布时间】:2015-03-3013:41:47【问题描述】:我已将滚动视图固定在IB的左上右下,它工作正常。我想在滚动视图中正确固定从笔尖加载的UIView。但... 查看详情

将多个容器视图放在 ios 中的分页 UIScrollView 中

】将多个容器视图放在ios中的分页UIScrollView中【英文标题】:PuttingmultiplecontainerviewsinsidepagedUIScrollViewinios【发布时间】:2014-07-0115:18:19【问题描述】:我在UIViewController中有一个UIScrollView。现在我想向这个滚动视图添加多个容器... 查看详情

将 Storyboard 视图中的所有内容移动到滚动视图中

...问题的最简单方法(我相信)是将视图中的所有内容放在UIScrollView中。有没有一种简单的方法可以将该视图中的所有内 查看详情

UIScrollview 在向下滚动并推送新的视图控制器后向上移动内容

】UIScrollview在向下滚动并推送新的视图控制器后向上移动内容【英文标题】:UIScrollviewshiftingcontentsupafterscrollingdownandpushingnewviewcontroler【发布时间】:2013-08-0809:41:16【问题描述】:我无法在我的uiscrollview上找出这个问题。单击按... 查看详情