首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS swift在uiScrollview中添加uiScrollview控制器

在iOS Swift中,可以通过以下步骤在UIScrollView中添加一个UIViewController:

  1. 创建一个新的UIViewController类,可以命名为"ChildViewController"。
  2. 在ChildViewController类中,可以定义和实现需要展示的内容和功能。
  3. 在父UIViewController中,创建一个UIScrollView实例,并设置其frame和contentSize属性,以确定滚动区域的大小。
  4. 在父UIViewController中,使用addChildViewController方法将ChildViewController添加为父控制器的子控制器。
  5. 在父UIViewController中,将ChildViewController的view添加到UIScrollView的contentView中。
  6. 在父UIViewController中,调用ChildViewController的didMove(toParentViewController:)方法,将其添加为父控制器的子控制器。

以下是一个示例代码:

代码语言:txt
复制
// 父UIViewController
class ParentViewController: UIViewController {
    var scrollView: UIScrollView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建UIScrollView实例
        scrollView = UIScrollView(frame: view.bounds)
        scrollView.contentSize = CGSize(width: view.bounds.width, height: view.bounds.height * 2)
        view.addSubview(scrollView)
        
        // 创建ChildViewController实例
        let childViewController = ChildViewController()
        
        // 将ChildViewController添加为父控制器的子控制器
        addChildViewController(childViewController)
        
        // 将ChildViewController的view添加到UIScrollView的contentView中
        scrollView.addSubview(childViewController.view)
        
        // 调用ChildViewController的didMove(toParentViewController:)方法
        childViewController.didMove(toParentViewController: self)
    }
}

// 子UIViewController
class ChildViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 在这里可以定义和实现需要展示的内容和功能
        let label = UILabel(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: 100))
        label.text = "Hello, World!"
        label.textAlignment = .center
        view.addSubview(label)
    }
}

这样,通过以上步骤,你就可以在UIScrollView中成功添加一个UIViewController,并在其中展示内容和功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS5开发-UIScrollView添加单击事件的方法

UIScrollView开发是一个非常常用的控件,UIScrollView具有水平、垂直滚动和缩放效果。但是尽然没有响应单击事件这个事件。而这个事件日常的交互是非常需要的。...下面我将用例子说明一下如何给UIScrollView添加一个单击的响应。...代码如下: 添加一个自定义的UIScrollView,命名:UITouchScrollView UITouchScrollView.h代码如下 #import <Foundation/Foundation.h...这里说一下IOS的事件委托(Event Delegate)相对C#的事件委托还是不一样的,似乎实现起来没有C#方便。这里就不多说了。...但是这样的写法经过测试IOS5.0以前的版本可以。但IOS5以后的(包括5)这不能往下传递,这里我也不知道为什么。希望有知道的朋友说一下。

1.8K70

iOS开发之UIScrollViewAutolayout下的使用

一、使用的基本原则: 原则1:UIScrollView的size依赖于subviews 首先在StoryBoard拖入一个UIScrollView,用Pin按钮,随意设置其布局。...原则2:subviews的size不能依赖于UIScrollView 因为UIScrollView的size依赖于subviews,而如果subviews的size再依赖于UIScrollView,就类似于操作系统的死锁了...二、正确的姿势 1、StoryBoard拖入一个UIScrollView。 2、设置UIScrollView的约束。...3、拖入一个UIView作为ScrollView的子控件,这个控件就是作为容纳真正布局控件的父控件,比如命名为contentView。...如果contentView的4条边发生变化,UIScrollView会自动调整contentSize。 5、接下来就是contentView上布局项目中需要的界面了。

91670

iOS 面向协议方式封装空白页功能

嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...(一) iOS - Swift 面向协议编程(二) 之前的文章中提到了,协议除了起规范作用,还有别一个用处,就是赋予能力。...我们现在的目的就是让目标控制器或者目标视图遵守我们的协议后,就可以有实现空白页的功能。...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界将UIScrollView传递进来,DZNEmptyDataSet的数据源方法和代理方法也有scrollView。...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也将 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。

1.4K50

关于Autolayout和Masonry自动布局的几个坑

关于Autolayout和Masonry自动布局的几个坑 自动布局 02 Mar 2016 0 Comments 前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器各自实现类似PageView...采用子控制器的原因是因为防止所有的逻辑代码都混在根控制器,所以没有使用nicklockwood的iCarousel或SwipeView,而是采用了之前一直在用的SCPageViewController...Breakpoint 4.Symbol添加UIViewAlertForUnsatisfiableConstraints ?...具体使用技巧参考Masonry自动布局详解九:复杂ScrollView布局、UIScrollView中使用Autolayout布局以及iOS_autoLayout_Masonry。...主要注意点为: UIScrollView自身的约束按照正常的视图添加。 内部子控件的约束不能按照UIScrollView来设置,同时必须完整,否则撑不起contentSize。

1.4K20

关于Autolayout和Masonry自动布局的几个坑

自动布局 02 Mar 2016 Comments 前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器各自实现类似PageView的视图,然后PageView的每一页是一个WebView...采用子控制器的原因是因为防止所有的逻辑代码都混在根控制器,所以没有使用nicklockwood 的iCarousel 或SwipeView ,而是采用了之前一直在用的SCPageViewController...] _autolayoutTrace] (Swift项目)。...具体使用技巧参考Masonry自动布局详解九:复杂ScrollView布局、UIScrollView中使用Autolayout布局以及iOS_autoLayout_Masonry。...主要注意点为: UIScrollView自身的约束按照正常的视图添加。 内部子控件的约束不能按照UIScrollView来设置,同时必须完整,否则撑不起contentSize。

1.6K20

UIScrollView

上面放置任何子视图的时候,当你子视图上移动的时候,UIScrollView会给子视图发送touchCancel消息,而如果该属性设置为NO,ScollView本身不处理这个消息,全部交给子视图处理...(3_0); //34.缩小到特定区域的内容,所以它是接收器可见 - (void)zoomToRect:(CGRect)rect animated:(BOOL)animated NS_AVAILABLE_IOS...*)scrollView; //48. scrollView减速停止了时候执行,手触摸时候执行 - (void)scrollViewDidEndDecelerating:(UIScrollView...) 设置scrollView的delegate(代理)为控制器对象 scrollView.delegate = 控制器; 控制器要遵守UIScrollViewDelegate协议 @interface...的模式:NSRunLoopCommonModes // 主线程不管处理什么操作,都会抽时间处理NSTimer [[NSRunLoop mainRunLoop] addTimer:self.timer

1.8K60

MyLayout&TangramKit 的重大升级!

UIView类中提供了一个可供重载的方法: - (CGSize)intrinsicContentSize NS_AVAILABLE_IOS(6_0); 如果某类视图有自己的固有内容尺寸则需要重载这个方法的实现...比如一些界面中有父视图的尺寸由子视图的尺寸来确定的;还比如UIScrollView为了能实现滚动需要根据添加到里面的子视图来调整contentSize的尺寸;又比如某些UITableViewCell的高度是动态的...constraintEqualToConstant:50].active = YES; [C.heightAnchor constraintEqualToConstant:40].active = YES; //假设S是添加在某个视图控制器...为此当UIScrollView要和AutoLayout进行结合使用并实现滚动能力的话就不能直接将所有子视图都添加UIScrollView中去, 而是需要中间建立一个容器视图,首先将容器视图添加UIScrollView...然后UITableViewCell的派生类建立一个根布局视图,这个根布局视图作为子视图添加到contentView中代码如下: //假设根布局视图是一个垂直线性布局视图。

2K20

IOS开发基础系列】UIScrollView专题

当手势处理的过程,滚动视图不能够给子视图,发送任何跟踪的调用。...重要的提示:UIScrollView对象,你不应该嵌入任何UIWebView和UITableView。...下面就需要在你创建的视图控制器,创建一个重用的视图数组,用来把这些要显示的视图放入内存,这里虽然界面上显示的是2排2列的四个视图,但是当拖动的时候,可能出现前面一排的视图显示一部分,末尾一排的视图显示一部分的情况...你的代码变得很牢固地配对在一起,它实际上变成了超类的一部分,你无法从UIScrollView析取它,之后用其它东西代替,如果它在你控制器且为控制器的一部分,之后更容易改变它工作的方式和重新安排你应用程序的一些部分...tid-248386.html 深入理解iOS开发UIScrollView http://mobile.51cto.com/hot-443341.htm IOS学习笔记——iOS组件之UIScrollView

38330

RxSwift + MJRefresh 打造自动处理刷新控件状态

本文是基于 iOS - RxSwift 项目实战记录 所述,如果你还未阅读过,建议你最好还先阅读一遍,并下载Demo熟悉一下 : ) LXFBiliBili 前言 MVVM的模式,多出了ViewModel...结合 iOS - RxSwift 项目实战记录 中所述的“MJRefreshRxSwift的使用”,output定义了一个变量 let refreshStatus = Variable<LXFRefreshStatus...面向协议 关于协议的内容可以看下我之前的这两篇文章 iOS - Swift 面向协议编程(一) iOS - Swift 面向协议编程(二) 总结协议的两大作用:1、规范 2、定制能力 定义协议 Refreshable...* ============================ Refreshable ================================ */ // 需要使用 MJExtension 的控制器使用...而至此,刷新控件的状态是由变量 refreshStatus 来决定,此时 refreshStatus 又声明 OutputRefreshProtocol 协议,我们何不再定义一个方法,将刷新控件的状态交给

1.8K41

iOS 全屏侧滑手势UIScrollViewUISlider间滑动手势冲突

效果预览 一、前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollViewUIScrollView上有UISlider...俺直接在之前的示例Demo上演示,简书地址:iOS 自定义转场动画 ,Github地址 :WSLTransferAnimation 二、问题展示 现象 1、UIScrollView当前第一页即contentOffset.x...方案二: 重写类别UIScrollView+GestureConflict的如下方法来解决UISlider与UIScrollView之间的冲突,然后还需要执行下面 问题补充 的操作来处理UISlider...UISlider是UIScrollView上的,如果UISlider不是UIScrollView上,而是直接就在ViewController.view上,那也就会出现拖拽UISlider时却响应了全屏侧滑...支持全屏侧滑返回的UINavigationController的子类WSLNavigatioController,遵守协议,实现如下方法:

4K20

iOS10 Swift3.0 XCode 8 总结

1,iOS10 新增的privacy settings iOS10添加了新的权限控制范围 如果你尝试访问这些隐私数据时得到如下错误: > This app has crashed because it...Variables里边添加 OS_ACTIVITY_MODE = Disable 3,iOS10 layoutIfNeed iOS10 一个控件上调用layoutIfNeed是只会单独计算约束,它所约束的控件不会生效...Zip2Sequence(_:_:)方法被替换为zip(_:_:) 7, Range.reversed 被移除 Swift3.0 Range.reversed方法被移除,被替换为<Collection...UIStatusBarStyleDefault; } 11, iOS10 UICollectionView 性能优化 iOS10 UICollectionView 最大的改变是增加了Pre-Fetching...(10_0); 奇怪的是UITableView并没有找到 isPrefetchingEnabled属性的定义 13,iOS10 UIScrollView 新增 refreshControl 属性 UIScrollView

74810

用AutoLayout实现分页滚动

滚动视图分页 UIScrollView的pagingEnabled属性用于控制是否按分页进行滚动。一些应用中会应用到这一个特性,最典型的就是手机桌面的应用图标列表。...这些界面往往每一页功能都比较独立,系统也提供了UIPageViewController来实现这种分页滚动的功能。 实现分页滚动的UI实现一般是最外层一个UIScrollView。...每个页视图中添加各自的条目视图。整体效果图如下: ? 分页滚动UI布局 AutoLayout实现分页滚动的方法 根据上面的UI结构这里用AutoLayout的代码来实现水平分页的滚动。...解决的办法就是屏幕滚动时的相应回调处理方法修正这个contentOffset的值来解决这个问题。...比如我们可以屏幕切换的sizeclass变化的视图控制器的协议方法添加如下代码: - (void)traitCollectionDidChange:(nullable UITraitCollection

1.9K40

Xcode 添加 Swift package 依赖

如果开发人员正确遵循 SemVer,则他们应该: 只要不破坏任何API或添加功能,就可以修复错误时更改补丁号。 当他们添加不会破坏任何API的功能时,请更改次版本号。 更改API时更改主版本号。...要尝试,请打开 ContentView.swift 并将此导入添加到顶部: import SamplePackage 是的,外部依赖关系现在是一个模块,我们可以需要的任何地方导入它。...Swift这只需要一行代码,因为序列具有map()方法,通过将函数应用于每个元素,我们可以将一种类型的数组转换为另一种类型的数组。...我们的例子,我们希望从每个整数初始化一个新的字符串,因此我们可以将String.init用作要调用的函数。...现在将此最后一行添加到属性: return strings.joined(separator: ", ") 这就完成了我们的代码:文本视图将显示结果的值,该结果将继续并选择随机数,对其进行排序,将它们进行字符串化

6.3K10

iOS多设备适配简史以及相应的API支撑实现

当然苹果也为上面两次大改版提供了诸多的解决方案: iOS7对视图控制器提供了如下属性来解决版本兼容性的问题: @property(nonatomic,assign) UIRectEdge edgesForExtendedLayout...因为iOS7和iOS11两个版本控制器的视图和上面所列出的一些内容之间的关系变化最大。...还提供了一个UIStackView的类来简化那些视图需要从上往下或者从左往右依次添加排列的场景,通过UIStackView容器视图的使用就不再需要为每个子视图添加冗余的依赖约束关系了。...大量的实践很多应用的各板块其实都是按顺序从上到下排列或者从左到右排列的。所以如果您的应用最低支持到iOS9的话就可以大量的应用这个类来构建你的程序了。...但是实际的实践我们很少有看到使用SizeClasses的例子和场景以及我们开发很少有使用到这方面的技术,所以我认为这应该是苹果的一个多屏幕适配的失败解决的方案。

1K30

委托与回调函数

Delegate模式是Cocoa开发随处可见的一种设计模式,几乎贯穿于整个Cocoa框架。...尤其是我们最常使用的UIKit,控制各类UI组件的最常用手段就是delegate跟Target-action(目标-动作,类似于一个监听事件)。...ScrollViewCtrl是一个控制器,它confirm to(遵守,大致就是其他语言中实现一个接口的意思)UIScrollViewDelegate这个protocol(协议)。...虽然Swift的委托实现跟协议息息相关,但我在这里不准备过多讨论协议的细节内容,只要知道它类似于其他语言的interface(接口)就可以了,只是Swift的protocol不仅可以被class遵守,...然后ScrollViewCtrl写了一个scrollViewDidScroll方法。这样在这个scrollView滑动的时候就会执行scrollViewDidScroll里面的代码了。

1.7K30
领券