![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Swift
Anything for a Swift Starter
Tech In Pieces
这个作者很懒,什么都没留下…
展开
-
MVC/Delegate设计模式在软件开发中的流程体现
(1)Http请求:客户端请求提交到DispatcherServlet。(2)寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。(3)调用处理器:DispatcherServlet将请求提交到Controller。(4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。(6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewRes原创 2020-12-16 07:09:15 · 160 阅读 · 0 评论 -
Swift - HTTP网络操作库Alamofire的功能特性
Alamofire的功能特性:(1)链式的请求/响应方法(2)URL / JSON / plist参数编码(3)上传类型支持:文件(File )、数据(Data )、流(Stream)以及MultipartFormData(4)支持文件下载,下载支持断点续传(5)支持使用NSURLCredential进行身份验证(6)HTTP响应验证(7)TLS Certificate and Public Key Pinning...原创 2020-12-16 07:08:43 · 139 阅读 · 0 评论 -
iOS 解决网络请求和界面刷新顺序问题
https://blog.csdn.net/u012709932/article/details/77924019这篇文章非常好,但是代码都是OC原创 2020-12-14 00:20:23 · 481 阅读 · 0 评论 -
Object-C与Swift的区别
https://www.jianshu.com/p/1413c8280e5f原创 2020-12-13 01:03:04 · 1619 阅读 · 0 评论 -
Cell.reloadInputView()和tableView.reloadData()的几问
table.reloadRows()table.reloadData()Cell.reloadInputView()区别是什么?都该用到什么地方?此外 还有tableView.beginUpdates()和tableView.endUpdates()他们是干什么的 放在哪里?为什么总是看见他们成双成对的出现?...原创 2020-12-14 00:19:15 · 180 阅读 · 0 评论 -
UITableView和UICollectionView(UICollectionViewCell/UICollectionViewLayout/UICollectionReusableView)
一个是表视图 就是只有一列另一个是集合视图 可以有多列UICollectionView默认没有表头, UITableView: 有表头和表尾;UICollectionView的区里面是项Item, UITableView:区里面是单元格CellUICollectionView布局使用UICollectionViewLayOut的子类(UICollectionViewFlowLayOut 流式布局:流式布局的特点就是会自动根据屏幕的宽度适当的显示列数,如果屏幕款显示的列数可能就多,例如iphone原创 2020-12-12 01:01:53 · 333 阅读 · 0 评论 -
关于View/ViewController文件中常见的SetUpNavigation()/SetUpViews()/SetUpConstraint()
首先这三者是用来配置布局的 第一个是设置导航栏 第二个是页面主体的设置 如果页面主体分为几个session,可以继续拆分下去,比如:private func setUpViews() { view.backgroundColor = .white view.addSubview(scrollView) //not sure if we need scroll view or not //implement of view setUpCurr原创 2020-12-12 01:00:37 · 400 阅读 · 0 评论 -
iOS 委托代理(delegate)入门
https://blog.csdn.net/yang8456211/article/details/11542455原创 2020-12-12 00:57:31 · 155 阅读 · 0 评论 -
iOS App生命周期及AppDelegate、SceneDelegate(IOS12及之前和IOS13)
https://www.cnblogs.com/Jamwong/p/12347288.html在手势或者其他前后台切换造成的影响都是一样的 不可以直接写一个大体框架 然后根据需要进行小修小补吗比如说双击home键 或者是从屏幕下端网上划 都会造成相同的影响 所不同的是不同的app会将不同的信息储存或者销毁。如果在app内部操作 也就是点击按钮 然后连接到不同的功能上 比如说翻页 或者是刷新https://juejin.im/post/5dcb9cb96fb9a04a5c44eb76...原创 2020-12-12 00:57:16 · 387 阅读 · 0 评论 -
从Swift代码块看同步异步
最近被IOS里面的同步异步搞得很痛苦。就是下面这段代码:private func requestFollow(isRefresh: Bool, followeeid: String) -> Bool{ var success = false if isRefresh { SVProgressHUD.show() } updateViews(dataStatus: .normal) dataSource原创 2020-12-11 00:39:48 · 338 阅读 · 0 评论 -
按钮文本左对齐/右对齐
https://www.jianshu.com/p/9f0227876b6c但是好像只对UIButton有效 对AttributedButton无效原创 2020-09-09 08:44:54 · 772 阅读 · 0 评论 -
如何提升IOS app流畅度
reference: https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/这篇文章十分详尽的讲解了原理和优化方法,有时间可以仔细研究一下。原创 2020-09-09 01:02:24 · 239 阅读 · 0 评论 -
LeetCode003 Longest Substring Without Repeating Characters
we just need to return the number of that longest substring.substring problem, maybe sliding window?and we need to sliding over till the end to make sure we get the longest one. but for every substring we count as a potential answer, we need to make sure原创 2020-09-07 09:59:42 · 120 阅读 · 0 评论 -
如何提升APP日活(DAU)?
https://www.zhihu.com/question/28385350第一个回答还是给人一些启发的。一、找到用户兴趣点1、你的用户,对哪些内容感兴趣,你就做好,投其所好。这些一方面需要用户调研,一方面需要自己来分析。2、数据分析用户喜好APP内的数据,看看哪些点击量大。从用户体验角度看,点击量大的放前面。二、服务好我们的客服的服务,会影响用户对产品的印象。搜易客服要服务好。三、做一些功能1、利益驱动。签到赚钱。比如万富黑卡APP上的签到送金币。赚钱的功能比如万富黑卡APP上的邀请赚钱,原创 2020-09-06 00:36:28 · 2146 阅读 · 0 评论 -
Apple官方用户交互指南
https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/原创 2020-09-06 00:23:39 · 275 阅读 · 0 评论 -
如何设计让用户满意的IOS应用?
reference: https://cdc.tencent.com/2012/06/29/%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E8%AE%A9%E7%94%A8%E6%88%B7%E6%BB%A1%E6%84%8F%E7%9A%84iphone%E5%BA%94%E7%94%A8%EF%BC%9F/author: @haoluan本文从软件开发者的角度阐述了一个良好的IOS应用应该考虑到哪些方面quote:你喜欢iphone吗?你喜欢iphone的应用吗?面对原创 2020-09-06 00:23:00 · 152 阅读 · 0 评论 -
Swift4 controller bar related
the following two override variable are used in navigation controller bar setting, to indicates the top of your phone(which means, wifi status, battery percentage, and time) to show or not. if you need them to show, please do not override any of these vari原创 2020-09-03 03:50:49 · 79 阅读 · 0 评论 -
Swift4普通属性 计算属性 监视器属性 get willSet didSet 关键字
refer:import Foundationclass People : NSObject{ //普通属性 var firstName:String = "" var lastName:String = "" var nickName:String = "" //计算属性 var fullName:String { get { return nickName + " "原创 2020-09-02 21:49:06 · 143 阅读 · 0 评论 -
LeetCode957 Prison Cells after N days
There are 8 prison cells in a row, and each cell is either occupied or vacant. if occupied, cells[i]=1, otherwise 0.and we have the following rules:If a cell has two adjacent neighbors that are both occupied or both vacant, then the cell becomes occupie原创 2020-07-30 08:58:45 · 174 阅读 · 0 评论 -
从ViewDidLoad()和ViewDidAppear()谈类的生命周期
最初注意到这个,还是因为在viewController里面注意到。然后去查资料,去看这两者有何区别?谷歌了一下 得出来答案如下:当视图控制器首次加载到内存中时,只调用一次。在这里,您希望实例化任何实例变量,并构建在此视图控制器的整个生命周期中存在的任何视图。但是,此时视图通常还不可见。viewDidLoad在视图实际可见时调用,并且可以在视图控制器的生命周期中多次调用(例如,当模式视图控制器被解除并且视图再次可见时)。这是您希望在UI中执行任何布局操作或进行任何绘图的位置,例如,显示模式视图控制器。原创 2020-07-24 10:47:01 · 1764 阅读 · 0 评论 -
从工程代码示例看ViewController和View文件的架构
我们现在要实现一个个人中心界面的实现个人中心界面由两部分组成,头部(包含用户头像,注册天数等信息)和收藏/发表的文章。我们采用1个viewcontroller和2个view的的组织架构。但是我们注意,这两个view是有区别的,一个是headerView,另一个是可重用的tableViewCell。因此,一个继承的是UIView,另一个继承的是UITableViewCell。所有与重用相关的配置都在viewcontroller里面。其他大量的代码也都在viewcontroller里面。那么vie原创 2020-07-24 10:43:17 · 148 阅读 · 0 评论 -
UICollectionView的用法
与UITableView类似:使用UITableView需要设置数据源和代理 UICollectionView的使用也需要设置数据源和代理UITableView显示什么内容由数据源决定 想监听UITableView, 由代理决定 UICollectionView显示什么内容由数据源决定UICollectionView监听由代理决定UITableView的内容都显示到cell上 UICollectionView的内容也显示到cell上UITableView自定义cell需要添加到contentView原创 2020-07-24 10:42:06 · 231 阅读 · 0 评论 -
为什么有的ViewController需要最后继承UIViewDataSource&UIViewDelegate?
这个里面需要实现大量的同名重载函数。这种多出现与viewController中。下面以UITableView为例来讲一下:UITableView的数据源(dataSource)和代理(delegate)UITableView需要一个数据源(dataSource)来显示数据,UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等。没有设置数据源的UITableView只是个空壳。凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源原创 2020-07-20 04:13:39 · 197 阅读 · 0 评论 -
UITableViewCell对象的重用原理
首先 我们知道这个对象是重用对象,为什么需要重用?iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存。要解决该问题,需要重用UITableViewCell对象。重用原理:当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用。当UITableView要求dataSource返回UITableViewCell原创 2020-07-20 04:05:17 · 246 阅读 · 0 评论 -
从UIView文件里的layoutSubview方法谈其 调用场景
首先 我们要明确 init初始化和initWithFrame不会调用layoutSubView然后 在viewcontroller里面,setUpViews的时候,会调用addsubview,这个函数会触发layoutsubview.但是,通过对代码的研究,发现layoutsubview只是在headerview这一个文件里实现了。而在viewcontroller里面,添加subview的时候,是没有直接添加headerview相关实例的(只是在setupview里用到了其实例的一部分),难道这样也算吗原创 2020-07-16 23:45:03 · 154 阅读 · 0 评论 -
由ViewController对象生命周期谈 生命周期 这一概念
对象的生命周期是个很重要的概念:生命周期控制函数不是简单的一个,而是一个序列://类的初始化方法+ (void)initialize;//对象初始化方法- (instancetype)init;//从归档初始化- (instancetype)initWithCoder:(NSCoder *)coder;//加载视图-(void)loadView;//将要加载视图- (void)viewDidLoad;//将要布局子视图-(void)viewWillLayoutSubviews;/原创 2020-07-16 02:26:11 · 121 阅读 · 0 评论 -
底层浅谈:什么是视图控制器?
用一句话概括,就是:在iOS应用运行中,屏幕中显示的内容是一组一组的视图对象,他们负责显示屏幕中的内容,而在视图的后面是UIViewController视图控制器,它的作用是管理哪些视图中显示的内容,并协调他们和应用其他部分的关系。但是这么说还是有些抽象,因为一些具体问题并未得到解决,比如说:如何知道我这个视图控制器控制的是哪些视图?“控制”究竟指的是什么?是事无巨细的管理着视图的内容和显示方式,还是说只需要管理视图的加载到消失整个流程即可?下面来仔细的看一下:在一个复杂的iOS应用中, 往往包含多个原创 2020-07-16 02:25:04 · 369 阅读 · 0 评论 -
代码示例:添加按键使得可以从当前视图控制器跳到另一个
示例:rootViewController和ViewController之间的互相跳转import UIKitclass RootViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.green let button = UIButton(type:原创 2020-07-16 02:21:04 · 136 阅读 · 0 评论 -
底层浅谈:什么是视图?
我最开始的理解 就是我们能在app上看到的一切,从状态栏,导航栏,到弹窗对话框。但是我们如何定义这些视图(比如视图中的控件是什么,位置在哪里,当前视图是否包含子视图,此视图和其他视图之间有哪些交互,对应的方法是怎么样的)?这个问题一直没有得到解决,而处于似懂非懂的状态。下面就从头讲一下什么是视图。说到视图,就是UIView,他是UIKit框架里面最基础的视图类,UIView类定义了一个矩形的区域,并管理该矩形区域内的所有屏幕显示。UIView类负责定义了视图的基本行为,但并不定义其视觉表现, 而是U原创 2020-07-16 00:43:32 · 437 阅读 · 0 评论 -
UIView和UIVierController的具体分工
refer:https://juejin.im/post/5ed4c06c6fb9a047a8622624我知道这是MVC模式的两个主要组成部分 而且知道ViewController一直都是起到一个控制连接器的作用。但是看了项目代码 发现controller也有显示view的功能 而且貌似只是handle没有网或者没有数据的特殊情况。那么view是干什么的呢?但是他们具体分工是怎么样的呢?你也可以认为UIViewController就是一个相框,而UIView就是一个相片,相框可以随时随地的拿走这个原创 2020-07-10 13:03:56 · 151 阅读 · 0 评论 -
从swift项目各种类中,重新思考:为什么需要不同的构造器?
首先我们问一下自己:为什么需要构造器?这个问题很简单:因为我们要把抽象的类变为具体的实例对象,而从抽象到具体 就需要对其的一些抽象属性进行具体赋值,所以我们需要构造器来做这个工作,同时也是在告诉其他人,想用这个类,必须要对这些对象进行赋值才能创建一个对象。那为什么我们需要多个构造器呢?实际上 如果我们在类里面定义一个带参数的构造器 当前此类就含有两个构造器了。因为所有的类都有隐含的无参构造器。看了一些资料 大多数都是“使得类更加灵活”。不是非常明白含义,就先这样吧。...原创 2020-07-10 09:51:38 · 85 阅读 · 1 评论 -
UIView.bringSubviewToBack()/sendSubviewToFront()
UIView的层次切换 这两个方法可以将指定的视图推到前面或者隐藏到后面。原创 2020-07-10 07:54:55 · 268 阅读 · 0 评论 -
XIB和StudyBoard指什么?
StoryBoard 和 Xib 都是用来分离UI样式代码,改善视图代码重用率,增加所见即所得,降低视图测试繁复度的视图系列化工具,他们之间的区别:其中Xib以视图View为主,StoryBoard 以控制器Controller及其之间的关系,以及和视图View的关系为主。还是听的云里雾里的 对吧?再看下面的解释:在学习Storyboard的使用,有三个概念是最容易混淆的:xib、nib、storyboard。xib:是一个可视化文件,可通过拖拽文件进行界面创作和布局。xib实际是个xml文件,x原创 2020-07-10 03:12:14 · 646 阅读 · 0 评论 -
swift4 CGRect() CGFloat()的参数说明
view坐标系原点在左上角。let rect = CGRect(x: 0, y: 0, width: 100, height: 100)let size = CGSize(width: 100, height: 100)let point = CGPoint(x: 0, y: 0)如果想访问CGRect类的变量的各种属性,直接rect.x, rect.y等等或者我们可以先声明 再赋值,比如:let view = UIView(frame: .zero) //UIView的参数就是个CGRec原创 2020-07-10 01:11:29 · 896 阅读 · 0 评论 -
IOS学习路线大纲
原创 2020-07-09 03:35:52 · 337 阅读 · 0 评论 -
UICollectionView详解
https://www.jianshu.com/p/abe04dd6164f这是一篇详细解释UICollectionView的文章 我们先从这篇文章开始。基础:collection view 是运用一个灵活多变的布局呈现一系列有序数据项的一种方法。collection view最通常的使用使用像网格状排列来呈现数据项,但是 iOS 的 collection view 的能力不仅限于行和列。使用 collection views, 视觉元素的精确布局可通过子类化定义并被动态改变。所以你可以实现网格,栈,原创 2020-07-09 02:51:28 · 5938 阅读 · 0 评论 -
Object-C.h与.m文件的区别
为什么.h文件和.m文件里各有1个@interface?它们分别有什么用?.h里面的@interface,不消说,是典型的头文件,它是供其它Class调用的。它的@property和functions,都能够被其它Class“看到”。而.m里面的@interface,在OC里叫作Class Extension,是.h文件中@interface的补充。但是.m文件里的@interface,对外是不开放的,只在.m文件里可见。因此,我们将对外开放的方法、变量放到.h文件中,而将不想要对外开放的变量放到.m原创 2020-07-06 13:37:14 · 801 阅读 · 0 评论 -
ViewController LifeCycle
we will focused on the differences between viewDidLoad, viewDidAppear, and viewDidLayoutSubviews.The definition given by Apple on viewDidLoad mentioned that it is called after the controller’s view is loaded into memory. To put it in a simple term, it is原创 2020-07-06 10:14:26 · 126 阅读 · 0 评论 -
Swift中的 escaping关键字
https://www.jianshu.com/p/dd0537a40fc6原创 2020-06-30 12:58:25 · 203 阅读 · 0 评论 -
Swift5.1 闭包
闭包是独立的函数块,可以在代码中传递和使用。Swift中的闭包类似于C和Objective-C中的block以及其他编程语言中的lambdas(匿名函数)。闭包可以捕获和存储上下文中定义的任何常量和变量的引用。闭包表达式的语法:{ (<#parameters#>) -> <#returnType#> in <#statements#> }使用闭包表达式的好处在于,就像lambda一样 大大简化的了代码量,下面以sorted函数为例正常情况下 我原创 2020-06-30 09:19:05 · 149 阅读 · 0 评论