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

Swift 项目 - Xib | StoryBoard 多人协作技巧

StoryBoard 和 Xib 都是用来分离UI样式代码,改善视图代码重用率,增加所见即所得,降低视图测试繁复度的视图系列化工具, 其中Xib以视图View为主, StoryBoard 以控制器Controller...VC处置 视图的初始样式应尽量在Storyboard上属性面板中设置,非极特殊情况,布局也应在Storyboard上使用各种约束配合完成。...对于圆角,背景色,阴影等CALayer的样式,应该使用扩展或子类化实例的形式,使用@IBInspectable属性关键字,在Storyboard属性面板中设定初始样式。...与其说StoryBoard 和 Xib 隐藏了UI细节,倒不如说苹果是希望通过他们来引导开发者正确的使用 视图 和 控制器 ,他们创建视图实例的时候都是通过 required init?...一个占位的容器视图指向子控制器的Embed Segue 按住Control键连线到想要包含的子控制器,占位视图的实例==子控制器的view(子控制器根视图) 选择Embed连线方式后,子控制器 的尺寸变化成跟占位视图一样的尺寸

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS14开发-UIViewController

    响应设备的方向变化。 有一些特殊的视图控制器(导航控制器、标签栏控制器)可以更加方便和规范地管理 UIView。 创建 storyboard 初始化箭头指向的 UIViewController。...loadView 方法大概的实现思路如下: func loadView() { // 如果UIViewController是通过storyboard创建的,从storyboard中加载视图来创建...需要先监听,后发送。 iOS 9 之后 NSNotificationCenter 无需手动移除观察者。 常见ViewController UIAlertController 警告(对话框)控制器。...案例 storyboard 使用。 纯代码使用。 自定义使用。 UITabBarController 标签栏控制器。...纯代码使用。 自定义使用。 其他 UITableViewController:表视图控制器,集成了 UITableView 的视图控制器。

    2.4K20

    Xcode:处理故事板的更好方式 享受Interface Builder的提示和技巧

    您需要为每个ViewController分配storyboard ID,这很容易出错:每次要在代码中使用ViewController时都需要对此ID进行硬编码 如何在项目中连接不同的故事板?...2.对storyboard文件和关联的viewController子类使用相同的名称。 这将简化命名约定,并在建议#3中为您提供一些好处。...如果在同一个Storyboard中有多个viewControllers,则必须使用instantiateViewController(withIdentifier:_) 现在,当你需要初始化这个viewController...这将创建同一ViewController的新实例,该实例已在视图层次结构中,而不是解除顶部ViewController。...对于Unwind Segues,您需要在目标视图控制器中编写代码。 prepareForUnwind方法的所有缺点prepareForSegue方法(见前面的建议) 什么是更简单的方法?

    1.4K30

    iOS对UIViewController生命周期和属性方法的解析

    这是一个ViewController完整的声明周期,其实里面还有好多地方需要我们注意一下: 1:initialize函数并不会每次创建对象都调用,只有在这个类第一次创建对象时才会调用,做一些类的准备工作...,这里面有一点需要我们注意,如果我们需要向controller中视图进行传值设置,通过以下方法得到的Controller中,视图还没有被初始化创建出来:  ViewController2 * viewController2..."]; 我们可以在ViewController2的storyBoard中拉一个label,然后关联到头文件中,如下打印,会发现我们得到controller时,里面的视图对象并没有进行创建: ViewController2...2、使用代码跳转Storyboard中的controller         我们除了在Storyboard中拉拉扯扯可以进行控制器的跳转外,我们也可以使用代码来跳转Storyboard中segue连接关系...1、parentViewController         UIViewController里面封装了一个数组,可以存放其子ViewController,系统中使用的例子就是导航和tabBar这类的控制器

    3K20

    iOS中storyboard故事板使用Segue跳转界面、传值

    ,但后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard...对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来说,还是很方便的,在storyboard中查看各个界面的跳转也很方便,但之前一直使用xib...现在文件都创建好了,目录如下: 准备视图和控件: 我们选择Main.storyboard,开始创建视图和控件。...现在我们选择两个视图控制器中间的箭头线条,右边查看第四个部分,可以看到可以选择一些Segue的属性: Identifier:可以定义Segue的标识,如果一个源视图有很多跳转到其他视图的Segue,就可以靠这个标识来判断到底是哪个...@"Page2ViewController"]) {// string值为在Segue属性Identifier处设置的值 // 相应处理 } 现在,运行工程,在第一个界面输入值后,点击跳转到第二个界面

    1.5K20

    UINavigationController

    *)viewController animated:(BOOL)animated; //使用pop方法可以移除控制器 //将栈顶的控制器移除 - (UIViewController *)popViewControllerAnimated...导航栏的内容由栈顶控制器的navigationItem属性决定 UINavigationItem有以下属性影响着导航栏的内容 //左上角的返回按钮 @property(nonatomic,retain...Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) Segue的属性 //每一个Segue对象,都有3个属性 //唯一标识 @property...“this2next” sender:nil]; 根据identifier去storyboard中找到对应的线,新建UIStoryboardSegue对象 设置Segue对象的sourceViewController...首先创建一个当前控制器将要跳转到的控制器 YLViewController *VC = [[YLViewController alloc] init]; //2.把Modal的控制器的

    1.4K60

    Swift封装-滑出式导航栏

    效果图.gif 前言: 本文将会创建以下几个主类: DWContainerViewController:这包含了左视图,中视图和右视图控制器的视图,并处理动画和滑动等操作。...创建storyboard,如图: image.png 并且创建DWCenterViewController、DWStarCell、DWSidePanelViewController,关联上图中的storyboard...() //折叠侧容器 } } 创建DWContainerViewController.swift,并定义一些属性: //枚举 滑动状态 enum SlideOutState { case...var leftViewController: DWSidePanelViewControllervar centerPanelExpandedOffset: CGFloat = 60 //该值是中央视图控制器在屏幕外动画显示后左侧可见的宽度...(centerNavigationController.view) //加入centerViewcontroller的视图控制器 addChildViewController(centerNavigationController

    2.3K80

    iOS13 Scene Delegate

    ,包括要创建的场景类型,用于管理场景的代理对象以及包含要显示的初始视图控制器的StoryBoard。...代理对象关联; StoryBoard name: 场景用于创建初始UI的storyboard名称。...使用此方法可以有选择地配置UIWindow窗口并将其附加到提供的UIWindowScene场景。 如果使用storyboard,则window属性将自动初始化并附加到场景中。...接着为SwiftUI项目创建了ContentView实例,并通过使用UIHostingController将其添加为根视图控制器。 该控制器用于将基于SwiftUI的视图显示在屏幕上。...scene(_: willConnectTo: options: )函数内,创建一个SwiftUI视图,将其放置在托管控制器中,然后将控制器分配给window属性的根视图控制器,并将该窗口放置在应用程序

    5.6K21

    iOS-UIWindow详解

    iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。...系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例化view controller 分配新视图控制器到窗口root viewcontroller...首先根据系统加载storyboard时做的三件事情,我们可以总结出UIWindow创建步骤 创建窗口对象 创建窗口的根控制器,并且赋值 显示窗口 并且我们在AppDelegate.h中发现属性window...3.通过storyboard加载控制器 刚才我们提到过系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例化view controller 分配新视图控制器到窗口...// 通过xib创建控制器 ViewController *vc = [[ViewController alloc] initWithNibName:@"VC" bundle:nil]

    2K40

    iOS开发系列——Storyboard

    其实在上面我们已经看到这个文件,这里重点说明一下Storyboard文件的使用。...: a.png 在这个界面中整个核心就是右侧视图控制器ViewController,在ViewController中有一个视图UIView,这个视图用来放置其他用户操作控件。...视图控制器左侧的箭头表示这个视图控制器是个主视图控制器,程序启动之后默认就会直接显示这个视图控制器的视图。我们可以在项目属性中通过修改“Main Interface”属性来修改主视图控制器。...b.png 要实现这个登录,那么接下来就是事件和属性绑定的问题,大家应该可以猜到登录的逻辑代码肯定在ViewController.m中编写,那么storyboard文件是如何关联到这个类的呢?...如果我们在storyboard界面选中ViewController在Xcode右侧切换到Identity Inspector视图就会发现里面当前设置的是ViewController类,通过这个设置Main.storyboard

    3.4K40

    IOS开发之TabBarItem&NavigationBarItem

    想必大家都用过微信,微信间的页面切换是如何做成的呢?接下来我们用storyboard结合着代码来模拟一下微信的视图控制模式。   ...下面的视图控制器之间的关系是如何用storyboard拖出来的,在之前的博客中有所提及,在这小编就不赘述了。   ViewController之间的关系大致入下图: ?   ...presentViewController:myTabBarController animated:YES completion:^{ 15 }]; 16 } 17 }     2.如何给我们新建的视图控制器关联我们新建的视图控制器类呢...其实在我们storyboard中还是蛮简单的,在storyboard选择我们要关联的视图控制器,在 Class中选中我们新建的视图控制器类即可。...在View中展示数据的时候,TableView用的也是蛮多的。 对于TableView如何使用,在后面的博客会进行详细的介绍。

    1.4K80

    【IOS开发基础系列】Storyboard专题

    2 使用 2.1 结合xib使用     思路:         APP跳转流程在故事板中呈现,但是VC的事件处理与详细视图设计放在xib文件中。     ...如果是使用IB ,在 MainWindow.xib中会有应用程序委托的一个引用,同时你可以将顶层的ViewController 连接到应用程序委托的IBOutlet 属性。但现在使用故事板就不可能了。...3 设计原则 3.1 布局设计原则 3.1.1 一个控件的布局尽量只采用一种方式,要么是Storyboard(XIB)要么是代码         因为视图在刷新时,会直接从Storyboard中加载控件的大小...里,给目标ViewController设置identifier。...5 参考链接 IOS编程教程(十):使用StoryBoard来建立导航控制器和表视图 http://www.cnblogs.com/haichao/archive/2012/11/23/2784144.

    1.3K30

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    UIWindow 窗口; -- FKViewController 属性 : 代表视图控制器, 系统创建控制器时, 通常会加载对应的 xib 文件; -- 应用初始界面 : 在 OCAppDelegate..." bundle:nil]; // 让该程序的窗口加载、并显示viewController视图控制器关联的用户界面 self.window.rootViewController = self.viewController...- C 类, 这些类用于保存 处理 数据; -- View 视图 : 使用 Interface Builder 创建的视图组件, 如 xib, storyboard 后缀的界面设计文件; -- Controller..., 箭头指向需要加载的 视图控制器; -- 移动箭头 : 视图中只有一个 UI 控制器, 移动箭头始终指向唯一的 一个 UI 控制器; -- 好处 : 可以直观地看到多个视图之间的协作关系, 可以在 Interface..." bundle:nil]; // 让该程序的窗口加载、并显示viewController视图控制器关联的用户界面 self.window.rootViewController = self.viewController

    5K30

    自定义转场详解(一)

    今天我们来实现一个简单的自定义转场,我们先来看看这篇文章将要实现的一个效果图吧: 过程详解 热身准备 我们先创建一个工程,首先用storyboard快速的创建两个控制器,一个作为主控制器,叫ViewController...,一般都会是在第二个控制器中直接给self发送dismissViewController的相关方法。...所以,一个比较好的地方是直接在主控制器ViewController中实现这个协议。...2.既然传入了这个需要手势dismiss的VC,我们就需要保存一下,方便当前类在其他地方使用,所以我们新建一个属性来保存这个传入的VC。...3.和创建PresentAnimation一样,我们创建一个一个DismissAnimation类 4.最后,我们在主控制器中添加一个手势驱动的对象,一个dismiss转场的对象,然后懒加载。

    89660

    自定义转场详解(一)

    今天我们来实现一个简单的自定义转场,我们先来看看这篇文章将要实现的一个效果图吧: 过程详解 热身准备 我们先创建一个工程,首先用storyboard快速的创建两个控制器,一个作为主控制器,叫ViewController...,一般都会是在第二个控制器中直接给self发送dismissViewController的相关方法。...所以,一个比较好的地方是直接在主控制器ViewController中实现这个协议。...让外部类可以看到传入手势dismiss的VC的入口。 既然传入了这个需要手势dismiss的VC,我们就需要保存一下,方便当前类在其他地方使用,所以我们新建一个属性来保存这个传入的VC。...给PanInteractiveTransition添加一个属性,表示是否处于切换过程中(用于判断使用的是点击按钮dismiss还是手势驱动来dismiss的) // 是否处于切换过程中

    95420

    iOS14开发-入门知识

    显示 Main.storyboard 中初始化的控制器。 Storyboard介绍 容器概念。 is Initial View Controller(箭头移动)。...Storyboard 中的界面与ViewController.swift之间的联系(一个界面与一个类文件关联)。...UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView(视图)。...属性面板的重要属性介绍。 纯代码 与 Storyboard 属性面板的属性对应。 注意代码的书写位置,往往有人由于书写的位置不对导致代码报错。...目前有两种方式: 通过 tag 属性:一旦视图多了,或者忘了设置 tag,亦或者设置了相同的 tag,都会出现问题。 通过 subviews 属性:一旦视图多了很难通过数组准确获取某个 View。

    2.9K40

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    原理图有了,接下来就要使用代码来创建出上述结构的数据以供TableView的数据源使用,下面的方法就是实现上述结构的函数。        ...我们上面Storyboard中的视图控制器使用的是UIViewController而不是UITableViewController。...通过Cell的重用标示符来创建Cell的实例对象,并对Cell上的一些属性赋值,并返回当前是Cell实例对象,代码如下所示。...我们需要做的就是,在上面界面中,我们点击任意Cell就可以Push(导航控制器展示视图控制器的一种方式,可以理解为视图控制器压栈的过程)到一个ViewController中,这个ViewController...1.实现编辑美女姓名的页面       (1) 在Storyboard上新添加一个视图控制器(UIViewController), 并命名为EditViewController,给视图控制器就是上方截图中绿色的那个视图控制器

    3.6K80
    领券