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

Swift异步编程方式

Swift异步编程方式 引 说到异步编程,我们很容易想到编译回调。无论是需要并行耗时任务,还是允许串行简单任务,都通过回调方式返回结果。回调也是在开发中使用最为广泛一种异步编程方式。...Swift从代码层面提供了结构化方式来支持异步编程,在Swift5.5引入了async和await相关关键字。...需要注意,异步和并行本身是两个概念,在Swift,异步编程模型已经建立在线程调度之上,这也就是说,我们无需关心其中线程调用,异步函数本身就是在子线程并行执行,线程切换和调度全有语言本身控制。...任务组与任务 当有多个异步任务需要执行时,可以将其添加到一个任务组,当任务组所有任务完成后再进行统一返回。...,其中可以添加多个子任务,任务组之间有非常明确关系,这种编程方式也被称为结构化编程,当然,Swift也提供了非结构化编程方式,即需要开发者处理任务之间关系。

33910

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

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

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

MyLayout&TangramKit 重大升级!

比如一些界面中有父视图尺寸由子视图尺寸来确定;还比如UIScrollView为了能实现滚动需要根据添加到里面的子视图来调整contentSize尺寸;又比如某些UITableViewCell高度是动态...为此当UIScrollView要和AutoLayout进行结合使用并实现滚动能力的话就不能直接所有子视图都添加到UIScrollView中去, 而是需要中间建立一个容器视图,首先将容器视图添加到UIScrollView...2.UIScrollView滚动 MyLayout&TangramKit对于处理和UIScrollView进行结合时进行特殊处理,当一个布局视图添加到滚动视图时,布局系统内部会负责处理滚动视图contentSize...要实现UIScrollView滚动时,只需要在一个滚动视图内添加一个布局视图,然后所有其他子视图都添加到这个布局视图中去,这个和上面的AutoLayout处理方式是一样,最后布局视图尺寸自适应属性设置为...这里只介绍MyLayout&TangramKit布局视图加入到AutoLayout布局体系中去一些方法。 1.布局视图添加到非布局父视图中 因为布局视图也是一个视图,都是从UIView派生。

2K20

在C#,如何以编程方式设置 Excel 单元格样式

在处理Excel文件时,经常需要对单元格进行样式设置,在此博客,小编重点介绍如何使用葡萄城公司服务端表格组件——GrapeCity Documents for Excel(以下简称GcExcel)...和 VerticalAlignment 属性以编程方式对齐文本,如下所示: worksheet.Range["A1"].HorizontalAlignment = HorizontalAlignment.Center...它接受 ReadingOrder 枚举值,如下所示: worksheet.Range["A1"].ReadingOrder = ReadingOrder.RightToLeft; 可以 Orientation...例如,若要对区域中唯一值应用条件格式,需要将 AddUniqueValue 规则添加到 FormatConditions 集合,如下面的代码所示: IUniqueValues condition...借助 GcExcel,可以使用工作簿 Styles 集合以编程方式这些快速样式应用于单元格或单元格区域,并将其作为值提供给 IRange.Style 属性,如下所示: worksheet.Range

21710

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

自动布局 02 Mar 2016 Comments 前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器各自实现类似PageView视图,然后PageView每一页是一个WebView...采用子控制器原因是因为防止所有的逻辑代码都混在根控制器,所以没有使用nicklockwood iCarousel 或SwipeView ,而是采用了之前一直在用SCPageViewController...记录下自动布局遇到几个坑。...self.isBigger; }]; button;}); 关于UIScrollView自动布局 上面提到页面遇到了多重UIScrollView,使用自动布局时候也是够蛋疼。...主要注意点为: UIScrollView自身约束按照正常视图添加。 内部子控件约束不能按照UIScrollView来设置,同时必须完整,否则撑不起contentSize。

1.6K20

一个多UITableview左右滑动简单解决方案

前言 本文源自实际开发需求,核心要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview滑动切换效果; 3、每个UITableview单独下拉刷新和上拉加载...contentSize = CGSizeMake(self.view.width * 4, 0); // 写0,关闭vertical滚动 viewWithTag 具有传递性 代码存在5个UIScrollView...当UIScrollView直接添加到self.view属性上时,如果automaticallyAdjustsScrollViewInsets为YES,会调整UIScrollViewinset以适应status...但是实际开发,在VCviewDidLoad方法中将其设置为NO,并没有生效,UIScrollView依旧下滑了20pt。...这时候,有的人可能会采用一种解决方案,比如在viewWillAppear时候,把offset改回去; 或者另一种解决方案:用UIViewUIScrollView装起来,再把UIView添加到VC.view

2.7K71

iOS 面向协议封装全屏旋转功能

关于使用面向协议来封装功能实战可以参考我上篇文章 【iOS 面向协议方式封装空白页功能】,这里就不再赘述,我们直接进入使用阶段吧。...本篇文章只有一个目的,那就是只要遵守协议,一行代码随意切换全屏~ 如果对面向协议有疑问同学可以看下我之前两篇文章 iOS - Swift 面向协议编程(一) iOS - Swift 面向协议编程...是否进入全屏 specifiedView UIView? 指定即将全屏视图 superView UIView?...UIViewController, FullScreenable { } 2、指定视图进入全屏 lxf.enterFullScreen(specifiedView: cyanView) 3、指定视图退出全屏,并添加到当前控制器...lxf_FullScreenable_3 结语 到这里相关说明已罗列完毕,有什么不清楚可以下载Demo看看,或者在文章下方留言提问 LXFProtocolTool 主要是通过协议方式来方便快捷地实现一些实用功能

1K60

UIViewController生命周期

由于视图由视图控制器管理,所以讨论视图加载方式时,主要讨论视图控制器加载方式。 通过Storyboard加载:这是苹果推荐方式。...这需要我们在loadView 方法,通过编程创建自己视图层次,并且把把根视图赋值给UIViewControllerview属性。...2、UIWindow主要作用有: 1.作为UIView最顶层容器,包含应用显示所有的UIView; 2.传递触摸消息和键盘事件给UIView; 把view添加到uiwindow 3、把view...添加到uiwindow上面 (1)直接控制器view添加到UIWindow,并不理会它对应控制器 [self.window addsubview:vc.view]; (2)设置uiwindow...根控制器,自动rootviewcontrollerview添加到window,负责管理rootviewcontroller生命周期 [self.window.rootviewcontroller

1.8K10

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

关于Autolayout和Masonry自动布局几个坑 自动布局 02 Mar 2016 0 Comments 前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器各自实现类似PageView...采用子控制器原因是因为防止所有的逻辑代码都混在根控制器,所以没有使用nicklockwoodiCarousel或SwipeView,而是采用了之前一直在用SCPageViewController...记录下自动布局遇到几个坑。...self.isBigger;}];button;}); 关于UIScrollView自动布局 上面提到页面遇到了多重UIScrollView,使用自动布局时候也是够蛋疼。...主要注意点为: UIScrollView自身约束按照正常视图添加。 内部子控件约束不能按照UIScrollView来设置,同时必须完整,否则撑不起contentSize。

1.4K20

Swift创建可缩放图像视图

对于我们可缩放图像视图,我们利用UIScrollView缩放和平移功能。...我们希望能够以编程方式和通过Interface Builder使用PanZoomImageView,所以让我们处理不同初始化器,并创建一个通用init。...我们通过在我们添加imageName字符串,并在字符串改变时更新UIImageView来实现。...试试平移和缩放(如果你使用是模拟器,按住 "option "键)--你会对你图像有一个全新视角 以编程方式初始化视图 在使用界面生成器时,这很好--但如果你想以编程方式初始化视图呢?...让我们给我们类添加另一个初始化器,这样我们就可以在代码设置图像名称。 medium.com/media/074d4… 就这样了!现在我们可以像这样通过图片名称以编程方式初始化我们视图了。

5.6K20

UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

1 简介 UIScrollView 是负责滚动视图。苹果最强大地方就在于其良好UI展示,和UE体验。如果不会很好使用UIScrollView,就等于丧失了苹果一般法力。...普通 UIView 不具备滚动功能,不能显示过多内容。...alloc]initWithImage:[UIImage imageNamed:@"002"]]; _imageView = imageView; // 把scrollVIew添加到...- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return self.imageView; 正在缩放时调用方法...和普通内边距作用相反,不是让内容向里面缩进。是在不改变原有的contentSize基础上,让scrollView内容向四周多滚动一些。

1.5K60

《iOS UI 开发捷径 利用 Interface Builder 高效、优雅地开发 UI》 读书笔记第1章 Interface Bundle 概要第2章 使用 Interface Builder第3

方式加载 通过 UINib 方式加载 使用与UIView子类源文件关联xib Bundle - (NSArray *)loadNibNamed:(NSString *)name...UIView view.addSubview(testView) } 使用与 UIViewController 子类源文件关联 xib Demo HomeViewController.swift...awakeFromNib() 方法 nib 可见控件显示出来 本地化 两种策略 App 本地化跟随系统语言 App 内部有一个可以设置语言选项 本地化介绍 Base 文本本地化 利用 NSLocalizedString...用 External Object 重构 VC 只能在于 xib IB 关键字总结 Swift @IBAction @IBOutlet @IBDesignable @IBInspectable...IB ,但是源文件必须是 UIView 或者 NSView 子类。

2.4K80

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

当一起使用时,运动和动态成为用户体验工具重要组成部分,使您交互栩栩生。用户通过看到它以自然,动态方式回应他们行为。...这些属性是隐式解包optionals(类型名称后面的!所示)。 这些属性必须是可选,因为我们没有在init方法初始化它们。...碰撞对象需要知道它应该与之交互每个视图; 因此障碍添加到物品列表中允许碰撞物体也作用于障碍物。...因此,如果以编程方式更改对象框架或转换属性,则可以预期这些值将被覆盖。 这意味着当它处于动态控制之下时,不能使用变换来缩放对象。...然后创建一个新捕捉行为,方块对齐到用户触摸位置,并将其添加到动画制作工具。 构建并运行应用程序。

1.8K30

IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】

autolayout添加函数 所需约束添加到block中行了 [sv mas_makeConstraints:^(MASConstraintMaker *make) { //sv居中(很容易理解吧...1.1.4 [中级] 在UIScrollView顺序排列一些view并自动计算contentSize UIScrollView *scrollView = [UIScrollView new];...这里关键就在于container这个view起到了一个中间层作用能够自动计算uiscrollViewcontentSize。...简洁明了达到了我们所要效果 1.2 高级开发技巧 1.2.1 更新layout 1.2.1.1 mas_updateConstraints 使用Masonry创建constraint来定义布局方式有三种...下一个runloop执行,所以如果要在布局完成后顺序执行某些处理(例如开始进行自定义绘制或者异步绘制),最好手动放到main_queue下一个runloop执行,确保布局完成后才开始执行代码。

73110
领券