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

通过父视图中的PageControl更改ContainerView中的IBAction

的具体步骤如下:

  1. 父视图中添加一个PageControl控件,并设置其属性,如页数、选中的颜色等。
  2. 在父视图中添加一个ContainerView,作为子视图的容器。
  3. 创建多个子视图,并将它们添加到ContainerView中。每个子视图代表一个不同的界面页面。
  4. 在父视图的ViewController中,通过IBOutlet将PageControl和ContainerView与代码关联起来。
  5. 实现PageControl的响应方法,当用户滑动或点击PageControl时调用该方法。
  6. 在响应方法中,根据PageControl当前选中的页数,动态切换ContainerView中显示的子视图。

下面是一个示例代码:

代码语言:txt
复制
import UIKit

class ParentViewController: UIViewController {

    @IBOutlet weak var pageControl: UIPageControl!
    @IBOutlet weak var containerView: UIView!
    
    var childViewControllers: [UIViewController] = []
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建多个子视图控制器,并添加到数组中
        let firstVC = FirstViewController()
        let secondVC = SecondViewController()
        let thirdVC = ThirdViewController()
        
        childViewControllers = [firstVC, secondVC, thirdVC]
        
        // 将第一个子视图控制器添加到ContainerView中
        addChild(firstVC)
        containerView.addSubview(firstVC.view)
        firstVC.view.frame = containerView.bounds
        firstVC.didMove(toParent: self)
        
        // 设置PageControl的页数为子视图控制器的数量
        pageControl.numberOfPages = childViewControllers.count
    }
    
    @IBAction func pageControlValueChanged(_ sender: UIPageControl) {
        // 获取当前选中的页数
        let currentPage = sender.currentPage
        
        // 移除当前显示的子视图控制器
        let currentChildVC = childViewControllers[currentPage]
        currentChildVC.willMove(toParent: nil)
        currentChildVC.view.removeFromSuperview()
        currentChildVC.removeFromParent()
        
        // 添加新的子视图控制器
        let newChildVC = childViewControllers[currentPage]
        addChild(newChildVC)
        containerView.addSubview(newChildVC.view)
        newChildVC.view.frame = containerView.bounds
        newChildVC.didMove(toParent: self)
    }
}

这段代码实现了通过父视图中的PageControl来切换ContainerView中的子视图控制器。每个子视图控制器代表一个不同的界面页面。当用户滑动或点击PageControl时,根据当前选中的页数,动态切换ContainerView中显示的子视图控制器。

在这个例子中,父视图中的PageControl控件和ContainerView控件分别通过IBOutlet与代码中的属性进行关联。每个子视图控制器被添加到一个数组中,根据PageControl的页数来确定子视图控制器的数量。在响应PageControl值改变的方法中,通过移除当前显示的子视图控制器,再添加新的子视图控制器来实现页面切换。

注意,这只是一个示例代码,实际应用中,你可能需要根据具体的需求进行修改和适配。对于前端开发、后端开发、软件测试、数据库、服务器运维、云原生、网络通信、网络安全、音视频、多媒体处理、人工智能、物联网、移动开发、存储、区块链、元宇宙等专业知识和各类编程语言的使用,你可以根据具体问题和需求进行深入研究和学习,以便在实际工作中更好地应用和解决问题。

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

相关·内容

Mac开发跬步积累(二):NSViewController 转场动画精耕细作

transition方法仅支持有父子关系控制器结构. transition由控制器super ViewController进行调用....修改4,5 步骤option 参数,可以实现不同transition 效果. 0x04 : Present 动画效果 presentViewControllerAsSheet @IBAction...控制器转场切换无论是presentViewController方式或者transition方式,本质上都是将要显示控制器视图View,通过addSubView方法添加到容器视图中展示....自定义present 动画时,需要注意事件穿透问题: 由于显示出来控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此在控制器视图(Controller...View)上进行点击操作,可能会触发容器视图中控件(比如按钮)方法 解决办法: 给容器视图添加一层背景视图(自定义NSView, 重写mouseDown方法即可),通过背景视图屏蔽鼠标操作,防止事件穿透到容器视图中

2.7K40

如何更改ggplot2堆积条形图中堆积顺序

语言之可视化①④一页多图(1) R语言之可视化①⑤ROC曲线 R语言之可视化①⑥一页多图(2) R语言之可视化①⑦调色板 R语言之可视化①⑧子图组合patchwork包 R语言之可视化①⑨之ggplot2图例修改...R语言之可视化(20)之geom_label()和geom_text() R语言之可视化(21)令人眼前一亮颜色包 R语言之可视化(22)绘制堆积条形图 R语言之可视化(23)高亮某一元素 R语言之可视化...(24)生成带P值得箱线图 R语言之可视化(25)绘制相关图(ggcorr包) R语言之可视化(26)ggplot2绘制饼图 R语言之可视化(27)通过R语言制作BBC风格精美图片 R语言之可视化(28...)蜜蜂图 R语言之可视化(29)如何更改ggplot2堆积条形图中堆积顺序 问题:如何控制由ggplot2创建堆积条堆积顺序。...解决方案 堆叠在数据框原始顺序 ra.melt$quality <- factor(ra.melt$quality, levels = ra$quality) p <- ggplot(ra.melt

11.8K31
  • UI篇-自定义控件关于图中键盘遮挡问题

    ---- (1)UIScrollView 对于加载在它上层试图中手势无影响,但对上上层时图手势就会失去响应。具体原因考虑到是 UIResponder 事件传递中出现了事件劫持。...(2)当我们自定义控件时,如果控件包括了UITextFeild 就要考虑到在用到这个自定义控件试图键盘遮挡输入框情况,一般自定义试图都继承于 BaseView,在这里有键盘遮挡统一处理方法,...但是要求子试图 大小要跟屏幕一样大才行,一般自定义控件可能是很小,所以这个自定义控件就不能继承 BaseView,它上层View可以继承于 BaseView ,使用代理,当自定义控件UITextFeild...(A让B为期做事)需要代理或者回调,B调用A方法(B让A为其做事),就直接用A一个实例话对象调用A方法即可。...一个巧妙设计如果不写注释就回让后续接手的人痛苦不堪,因为外人根本不知道自己所谓“巧妙逻辑”,如:为了在众多情况,使用一种公共方法,就会把 for循环 i 和数组 下标 i 联系在一起

    48110

    MyLayout&TangramKit 重大升级!

    比如一些界面中有视图尺寸由子视图尺寸来确定;还比如UIScrollView为了能实现滚动需要根据添加到里面的子视图来调整contentSize尺寸;又比如某些UITableViewCell高度是动态...容器视图实现尺寸自适应 对于一个容器视图来说,当要实现视图尺寸依赖所有子视图尺寸来实现自适应时,要设置约束依赖不是通过尺寸约束来实现而是通过位置约束来实现。...可以看出来要实现容器视图S尺寸自适应时不是通过设置宽度和高度尺寸依赖来实现而是通过设置让视图边界依赖于某个子视图边界来实现。具体代码展示如下: //这里忽略了视图创建代码。...因为MyLayout&TangramKit尺寸自适应约束不需要明确依赖某个子视图,因此当布局视图中子视图有变化时系统会自动重新进行布局视图尺寸计算,而当布局视图尺寸变化时又会调整UIScrollView...这里只介绍将MyLayout&TangramKit布局视图加入到AutoLayout布局体系中去一些方法。 1.将布局视图添加到非布局图中 因为布局视图也是一个视图,都是从UIView派生。

    2.1K20

    【ERP最新动态】Winshuttle如何通过嵌套循环更改销售订单明细Schedule Lines

    SAP更改销售订单明细计划行操作流程: Winshuttle更改销售订单明细计划行操作流程: 1.登录SAP,输入T-code: VA02开始录制 同上填写销售订单编号之后,与在SAP...操作不同是,需要点击定位按钮定位到明细上,然后点击Schedule lines for item 按钮进入明细计划行。...在创建VA02嵌套循环时,应先创建包含销售订单明细外循环,再创建明细下计划行内循环。常用映射方式为拖拽,选中Excel表格框,按住并向上方对应行拖拽,即为映射。 3....示例为增加D1并通过T-code VA03检验运行结果。 以上为通过Winshuttle嵌套循环方式更改明细Schedule lines具体操作流程。...嵌套循环还可以应用于其他业务场景,从而提高脚本灵活性。

    2.9K20

    View编程指南(三)

    每个viewwindow属性包含当前显示viewwindow(如果有的话)。 由于view层次结构root view没有view,因此其superview属性设置为nil。...图显示了一个转换过程如何导致矩形大小改变例子。 在图中,外部view包含旋转subview。 将subview坐标系矩形转换为坐标系,得到一个物理上较大矩形。...您应用程序通过调用view 底层layersetNeedsLayout方法来强制布局。 当您更改view大小时,通常需要更改嵌入子view位置和大小,以考虑其父级新大小。...上图中灵活宽度和高度常数与“AutoSizing”控件图中宽度和大小指示器具有相同行为。 但是,保证行为和使用是有效逆转。...应用程序可能会通过重新排列view,更改其大小或位置,隐藏或显示view或加载全新view来修改view。

    1.7K30

    iOS14开发-入门知识

    UIView常见方法 addSubview:添加视图到视图。 removeFromSuperview:将视图从父视图中移除(需提前讲解触摸方法)。...注意代码书写位置,往往有人由于书写位置不对导致代码报错。 @IBOutlet与@IBAction 引入 如何在代码获取 Storyboard 自定义 UIView?...@IBAction 写于类方法。 与 Storyboard UIView 产生事件建立联系。 当相应事件发生时,方法就会被调用。...只有继承自 UIControl UI 控件可以拖拽 @IBAction。 顺向与反向拖拽连线 顺向拖拽连线:通过 Storyboard 向类文件拖拽连线。...经典连线错误 UIView 连线后删除了类 @IBOutlet 或者 @IBAction。 UIView 连线后改变类 @IBOutlet 或者 @IBAction 名字。

    2.9K40

    用AutoLayout实现分页滚动

    每个页视图中在添加各自条目视图。整体效果图如下: ? 分页滚动UI布局 AutoLayout实现分页滚动方法 根据上面的UI结构这里用AutoLayout代码来实现水平分页滚动。...,如果需要左右滚动则将容器视图中最右部子视图这里是B右边边界依赖于容器视图右边边界。...containerView.gravity = MyGravity_Vert_Fill | MyGravity_Horz_Fill; //设置线性布局所有子视图均分和填充线性布局高度和宽度。...流式布局用于一些子视图有规律排列场景,就比如本例子滚动分页图标列表能力。下面就是具体实现代码。...其原因是无论是分页滚动还是不分页滚动,在滚动时都是通过调整滚动视图contentOffset来实现

    1.9K40

    iOS UI控件了解一下

    UIView属性frame、bounds、center 1)frame:描述当前视图在其父视图中位置和大小; frame是一个结构体,包含2部分内容:origin和size。...和size是相对于视图来说。...CGRect)bounds{   return CGRectMake(0,0,self.frame.size.width,self.frame.size.height); } 3)center:描述当前视图中心点在其父视图中位置...①开辟空间并初始化(如果本类有初始化方法,使用自己;否则使用); ②设置文本显示、输入相关属性; ③添加到视图上,用以显示; ④释放; 3)UITextField...①创建button对象(如果本类有初始化方法,使用自己;否则使用); ②设置按钮显示相关属性; ③为按钮添加点击事件; ④添加按钮到视图上

    2.6K20

    iOS Core Animation:Advanced Techniques

    设置一个颜色数组,然后通过关键帧动画播放出来(见下面的代码) 使用CAKeyframeAnimation应用一系列颜色变化 - (IBAction)changeColor { //create...CALayer有一个-renderInContext:方法,可以通过把它绘制到Core Graphics上下文中捕获当前内容图片,然后在另外图中显示出来。...第2篇: 层级关系时间(书中无) 在第三章“图层几何学”,你已经了解到每个图层是如何相对在图层树图层定义 它坐标系。...然而在层级关系,beginTime指定了图层开始动画(或者组合关系 动画)和对象将要开始自己动画之间偏移。...每 个CALayer和CAAnimation实例都有自己本地时间概念,是根据图层/动画层级关系beginTime,timeOffset和 speed属性计算。

    1.9K30

    NSNotificationCenter 通知使用方法详解你要知道KVC、KVO、Delegate、Notification都在这里

    你要知道KVC、KVO、Delegate、Notification都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要通过讲解...KVO机制类似,KVO触发回调函数也可以被对个对象响应,但代理模式delegate则是一种一对一模式,委托对象只能有一个,对象也只能和委托对象通过代理方式通信。...,NextViewController包含一个输入框和一个按钮,用户在完成输入后点击按钮退出视图跳转回ViewController并在ViewController标签展示用户填写数据,接下来看一下代码...上面的栗子很简单,但有一点是需要强调,我们在NextViewController中发送通知是在main线程中发送,因此ViewController监听器回调函数也会在main线程执行,因此我们在监听器回调函数修改...UI不会产生任何问题,但当通知是在其他线程中发送,监听器回调函数很有可能就是在发送通知那个线程执行,我们知道UI更新必须在主线程执行,这个时候就需要注意,如果通知监听器回调函数有需要更新UI代码

    2.2K60

    View编程指南(四)

    在iOS,动画广泛用于重新定位view,更改大小,将其从view层次结构移除,并将其隐藏起来。 您可以使用动画将反馈传达给用户或实现有趣视觉效果。.... center 修改这个属性来修改相对于View坐标系统中心点 transform 修改这个属性来修改相对于其中心点移动缩放旋转....使用核心动画,您可以为您viewlayer设置以下类型更改: layer大小和位置 执行转换时使用中心点 转换到三维空间中layer或其sublayer 从layer分层结构添加或删除layer...iOS4之后则应该用block动画 动画block嵌套 您可以通过嵌套其他动画blcok来为动画block某些部分分配不同时序和配置选项。...在传递给此方法动画块,通常动画唯一更改是与显示,隐藏,添加或删除子view相关更改。将动画限制为该集合允许view创建view之前和之后版本快照图像,并且在两个图像之间创建动画,这更高效。

    64310

    按钮与交互-使用按钮触发操作

    在本节,我们将介绍一个重要且简单元素,即按钮。这个小元素可以改变整个UX。我们将使用该按钮来缩放我们3D模型。此外,我们将尝试更改手机壁纸。...设置 现在,您可以更改项目名称并添加应用程序图标。在设置页面,将显示名称更改为角度AR或所需名称。在资产目录,将应用程序图标从assets文件夹拖放到选定插槽。...约束 IBAction为 现在我们有了按钮,我们需要给它们功能。通过单击右上角带有双圆圈图标启用助理编辑器。您将看到我们同时拥有主故事板和代码。...让我们通过按住Control创建3个IBAction 并拖动ARSCNView Outlet 声明正下方每个按钮。...iPhoneNodeChild 变换 在IBAction括号内,您可以放置​​指定按钮功能。

    4.6K20

    【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

    界面简介 : 1.设计界面与实际界面的差异 : 下图中 Main.storyboard 界面规格 与 右侧 iPhone 6S 虚拟机规格 明显不同; 中间是设计界面, 右侧是 iPhone...另外若干个 UIView; 3.控件 与 子控件 : iOS 整个界面是一个 UIView 控件, 该控件是控件; 该界面元素被嵌套在了 控件 UIView , 这些界面控件就是...,copy) NSArray *subviews; ; 3.tag 属性 : 控件标识属性, 控件可以通过 tag 属性找到子控件, UIView 定义内容 @property(nonatomic...Pad 数字键盘; 3.退出软键盘方式 : 两种方式 ① 哪个 TextField 触发, 通过对应 TextField 控件 关闭键盘; ② 通过 控件 关闭 软键盘; ① 谁触发谁关闭...textField 属性对应控件触发软键盘; ② 通过控件关闭 : 调用界面的根节点 view endEditing 方法关闭软键盘; 代码 [self.view endEditing:YES

    4.9K30
    领券