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

iOS开发常用之网络

LayoutTrait - swift一个小库。做iPad多任务分屏适配的同学可以看一下。 HACursor - HACursor,是一个对横向ScrollView视图进行管理的UI控件。...ZTPageController - 模仿网易新闻和其他新闻样式做的一个菜单栏,栏中有各自的控制器,其中有4展示样式'网易风格''搜狐风格''腾讯风格1''网易style2'。...Gecco.Swift - Gecco.Swift是一款支持对视图进行局部高亮的Swift库,帮助iOS开发者快速创建产品的新手指导界面。...SubtleVolume.swift - 更隐蔽的系统音量替代指示。 InkKit.swift - 该类库帮助开发者绘制简单图形更容易。...STLBGVideo - STLBGVideo让您的视图控制器的自定义backgroundvideo,实现说明1,实现说明2。 Advance.swift - 简单易用,功能强大的动画框架库。

23.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

将模型添加到场景 - 您的环境显示3D内容

您可以下载本节的最终Xcode项目,以帮助您与自己的进度进行比较。 基本视图 Main.Storyboard,我们已经提到ARSCNView默认放在视图控制器的顶部。...调整大小以填充整个视图控制器。 约束 然后,单击Storyboard编辑左下角的第四个图标,将新约束添加到场景视图中。定义约束以确保您的用户界面适应不同的屏幕尺寸或设备方向。...现在,关闭助理编辑。 添加按钮 我们想在视图中添加一个按钮,用作在场景添加模型的触发。从对象库,将UIButton拖动到场景视图的顶部。...右键单击视图控制器+ ARSCNViewDelegate.swift并选择新建文件...。然后,选择Swift File,单击Next。...ViewController.swift,将一个新的变量声明为一个节点数组,我们将其初始化为空。

5.5K20

Swift开发:自定义标签栏UITabBarController (Swift项目开始的第一步)

Swift的学习过程,个人感觉虽说两种语言的相似度很大,但是Swift依然代码风格上有着和OC很大的差异。...屏幕快照 2017-07-15 下午1.52.29.png 2.创建标签配置Plist文件,并且Plist文件设置视图控制器名、Title、标签栏图片等信息 ?...屏幕快照 2017-07-15 下午1.46.26.png 这里做下说明,之所以创建这个plist文件是因为之后创建视图控制器和标签按钮时会有很大的便利性,而且也十分方便真实开发过程的需求更改。...第三步:创建视图控制器 自定义导航控制器视图控制器的父,并且创建三个继承于BaseViewController的视图控制器(因为没有过多复杂操作,这里省略代码),为之后创建标签控制器做准备。...} //初始化导航控制器数组 var nvcArray = [BaseNavigationViewController]() //Swift, 通过字符串创建一个

3.9K70

AVKit框架详细解析(二) —— 基于视频播放的画中画实现(一)

点击视频以显示自定义播放控制器。 很好! 视频自定义控制器播放。 但是……如果您点击画中画按钮,则什么也不会发生。 别担心,你现在会解决这个问题的。...接下来,您将添加功能,以便您的用户可以自定义播放控制器启动和停止画中画。 1....: nil) 在这里,您可以画中画启动时关闭自定义播放控制器。...文件的底部,你会看到一个的扩展,它有一个方法:restore(playerViewController:completionHandler:)。...2) 如果有一个展示的控制器没有动画的情况下关闭它,因为用户希望尽快让他们的视频恢复正常并且对任何视图控制器动画不感兴趣。

2.7K10

iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

介绍Segue 时候storyboard添加更多的控制器了.你激昂会创建一个控制器,它允许用户向这个app添加玩家....这就是所谓的”modal” segue.新的控制器完全把先前的界面盖住了.用户不能与底层的控制器进行交互直到把modal出来的控制器关闭为止.后面你也会”看到”segue导航控制器(Navigation...然而新的控制器并不是非常有用 – 你甚至不能关闭它返回到上一个控制器.那是因为只有一个方法–虽然它可以从Player控制器到这个新的控制器,但是它却不能返回....现在你可以创建最终的unwind segue了.PlayersViewController.swift(而不是detail控制器)末尾添加unwind 方法: @IBAction func cancelToPlayersViewController....每一个静态单元格都只有一个实例,所以它完全是可以接受的视图控制器里通过连线连接它们的子视图.

3.2K10

Mac开发之 Cocoa 绑定 入门

). 2.为什么使用绑定在日常开发,我们为了项目代码更易于维护,会将程序代码划分为独立模块或封装,其中最基础的就是使用模型(M)-视图(V)-控制器(C)进行协调工作.然而,某些情况下,编写相互分离的模型...-视图-控制器完全没有必要,特别是当控制器仅仅是模型与视图之间传递信息时(比如一个UILabel需要显示文本来自数据模型的内容),为了解决这种情况,苹果公司OSX引入了Cocoa绑定....默认是关闭了KVO的属性监听,我们只需要开启就可以了,Person,给score属性前面,添加一个关键字dynamic,然后再来试试运行吧 (9)设置Swift的KVO 开启KVO (10)...,简化了开发步骤,同时也减少了Bug的可能. 3.2 绑定到控制器 刚刚的例子,我们将视图直接绑定在模型对象的属性上,跳过了控制器,这种情况对应简单的使用没有问题,但绑定还有更多的使用方式,也许你签名的例子已经注意到了...通过cocoa 绑定,我们没有写一行代码就实现了记录用户设置的功能~ cocoa还为我们提供了其他的控制器对象来处理应用程序的数据访问,比如NSArrayController,可以处理一组数据集合,

1.8K20

Swift中使用工厂进行依赖注入

然而,我们的列表视图很可能不是只有一层,这在某种程度上需要我们实现导航到另一个视图控制器。 假设我们想让用户点击消息列表的某个单元格时,能够导航到一个新的视图。...为了启用回复功能,我们实现了一个MessageSender创建新的视图控制器时,我们将其注入到新的视图控制器,像这样: override func tableView(_ tableView:...一个选择是简单地将发送者也添加到列表视图控制器的初始化: class MessageListViewController: UITableViewController { init(loader...我们将首先为我们的工厂定义一个协议,这将使我们能够轻松地创建我们应用程序需要的任何视图控制器,而不需要实际了解其依赖性或初始化。...我们还将创建额外的工厂协议来创建我们的视图控制器的依赖关系,比如这个,让我们为我们的列表视图控制器创建一个MessageLoader: protocol MessageLoaderFactory {

80520

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

、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。...版本和Objective-C版本不同,swift,alertView的初始化只允许创建拥有一个取消按钮的对话框视图。...Observer,我们通过每个按钮动作的handler代码块(还有其他任何可能释放视图控制器的地方)添加合适的代码来实现它。...释放对话框控制器         通常情况下,当用户选中一个动作后对话框控制器将会自行释放。不过您仍然可以需要的时候以编程方式释放它,就像释放其他视图控制器一样。...假定我们正在监听UIApplicationDidEnterBackgroundNotification通知消息,我们可以observer释放任何显示出来的视图控制器

40430

iOS13 Scene Delegate

在上面的代码,我们可以手动地设置了视图控制器堆栈,稍后会进行详细介绍。...application(_:didDiscardSceneSessions:) : 分屏关闭其中一个或多个scene时候回调用,可以该函数销毁场景所使用的资源。...UIWindow,并添加根视图控制器 @available(iOS 13, *) class SceneDelegate: UIResponder, UIWindowSceneDelegate {...接着为SwiftUI项目创建了ContentView实例,并通过使用UIHostingController将其添加为根视图控制器。 该控制器用于将基于SwiftUI的视图显示屏幕上。...scene(_: willConnectTo: options: )函数内,创建一个SwiftUI视图,将其放置托管控制器,然后将控制器分配给window属性的根视图控制器,并将该窗口放置应用程序

5.2K20

Swift:静态工厂方法

无论是我们要根据APP的品牌设置样式的视图(View),还是要配置的视图控制器(View Controller),亦或是测试创建存根的值时,我们经常发现需要将设置代码放在某个地方。...视图控制器 View controllers 让我们继续查看控制器,这是使用子类非常常见的另一种对象。...虽然我们可能无法完全摆脱视图控制器(或与此相关的视图)的子类化,但是某些类型的视图控制器可以从工厂方法受益。...尤其是使用子视图控制器时,我们通常最终会得到一组视图控制器,它们只能在其中呈现特定状态,而不是在其中包含大量逻辑。对于那些视图控制器,将其设置移动到静态工厂API可能是一个很好的解决方案。...特别是如果与"Swift:将子视图控制器用作插件" 的便捷API的稍加修改版本结合使用,我们现在可以执行异步操作时轻松添加预先配置的加载视图控制器: class ProductListViewController

2.4K10

iOS 9 Storyboard 教程(二下)

当用户点击Cancel按钮的时候,这个控制器将会关闭并且不管你输了什么数据都不会保存.这个部分用unwind segue已经起作用了....当你关闭 Add Player控制器,也点击了Cancel和Done按钮的时候,你应该会看到deinit里print()方法输出地状态信息.如果你再一次打开了这个控制器,你应该也会再一次看到从init?...返回Main.storyboard里你新建的Choose Game控制器然后Identity Inspector里设置自定义的GamePickerViewController....现在让我们给这个新的控制器一些数据来显示吧.GamePickerViewController.swift,把一个具有硬编码值的games字符串数组添加到顶部: var games:[String]...PlayerDetailsViewController.swift里,的顶部,添加一个属性来保存选中的游戏,那样你就可以Player对象存储它.给它一个默认的名字”Chess”,那样你就会一个新的玩家始终都会有衣蛾选中的游戏名字

2.2K10

架构之路 (五) —— VIPER架构模式(一)

路由Router处理屏幕之间的导航。这与SwiftUI不同,SwiftUI视图显示任何新视图。...使用这种方法,你storyboard定义View,Controller是一个关联的UIViewController子类。控制器Controller修改视图,接受用户输入并直接与模型交互。...控制器Controller因视图逻辑和业务逻辑而膨胀。 MVVM是一种流行的体系结构,View Model它将视图逻辑与业务逻辑分离开来。视图模型与模型Model交互。...最大的区别是,视图模型View Model与视图控制器不同,它只有对视图和模型的单向引用。MVVM非常适合SwiftUI。 VIPER更进一步,将视图逻辑与数据模型逻辑分离。...router处理从一个屏幕到另一个屏幕的转换,设置下一个视图所需的命令式UI范例——换句话说,UIKit——路由router将负责显示视图控制器或激活segue。

17.4K10

XcodeXcode 9 的全新功能您会喜欢的工具。内建 Interface BuilderXcode IDE

新的 Swift 4 编译现已兼容 Swift 3 代码。您可以轻松地眨眼之间迁移数据至 Xcode 9:您的 app 中选择准备转移至 Swift 4 的部分,余下部分可稍后再进行迁移。...根据您在主编辑执行的工作,Assistant 编辑会自动显示 Xcode 确定为对您最有帮助的文件。...例如,当在主编辑编辑源代码时,Assistant 可以显示对应标题、子类或父或者相关测试。 ?...Xcode 包括以下 Storyboard 控制器: 表格视图控制器 集合视图控制器 导航控制器 标签栏控制器 页面视图控制器 GLKit 视图控制器 或自定义 Assistant 编辑 Storyboard...该按钮可以显示与标头对应的内容、超、调用方、被调用方或其他有帮助的文件。

8.3K30

Swift 基于闭包的类型擦除

今天,我想重点介绍 Swift 处理泛型时可能发生的一种情况,以及我通常如何使用基于闭包的类型擦除技术来解决这种情况。 假设我们要编写一个,使我们可以通过网络加载模型。...init(modelLoader: T) where T.Model == MyModel { ... } } 这是有效的,但由于我们还希望我们的视图控制器引用我们的模型加载程序...T只我们的初始化程序的上下文中知道,因此我们无法定义T类型的属性,除非我们使视图控制器本身成为泛型 - 这将非常迅速使我们进一步陷入到处都是通用课程的兔子洞(down into a rabit hole...但是,事实证明,我们实际上可以直接在我们的视图控制器中进行基于闭合的类型擦除 ——而不是必须通过AnyModelloader。...一样,我们可以参考load函数作为闭包的实现,并只需我们的视图控制器中保存引用。

1K20

Swift-MVVM 简单演练(一)

) 设置子控制器 HQMainViewController设置四个子控制器 用extension将代码拆分 通过反射机制,获取子控制器名,创建子控制器 设置每个子控制的tabBar图片及标题 HQMainViewController...---- 添加下拉刷新控件 控制器定义下拉刷新控件,这样就不用每个子控制器页面单独设置了 给refreshControl添加监听方法,监听refreshControl的valueChange事件...控制器的setupUI(设置界面)的方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择是创建普通视图,还是创建访客视图。就可以很好的解决此类问题了。...到目前为止,虽然我们只是控制器里面创建了访客视图setupVistorView,只有一个访客视图的HQVistorView,但是实际上当我们点击不同的子控制器的时候,每个子控制器都会创建一个访客视图...总结 使用代理传递消息是为了控制器视图之间解耦,让视图能够被多个控制器复用,如TableView 但是,如果视图仅仅是为了封装代码,而从控制器剥离出来的,并且能够确认该视图不会被其它控制器引用,

10.2K51

玩转 Xcode Playground(上)

Swift Playgrounds 创建 Playground 项目 Swift Playgrounds 4 可以直接创建与 Xcode 兼容的 Playground 项目(.playground...image-20211224092212674 Swift Playgrounds 对于 QuickLook 的操作与 Xcode 类似,并可通过关闭【启用结果】来提高代码的执行效率。...通过导入 PlaygroundSupport 并将当前页面的实时视图设置为你的自定义视图视图控制器,就可以将一个交互式实时视图添加到 Playground Page 。...image-20211224105528272 实时视图支持 SwiftUI 视图以及 UIKit(AppKit)的视图视图控制器。SwiftUI 视图需要通过 setLiveView 来设定。...总结 【玩转 Xcode Playground (下)】,我们将着重介绍有关 SPM、资源管理、辅助代码、文档标注等方面的内容。 希望本文能够对你有所帮助

3.9K20
领券