iOS开发者-Ziank的总结

自己开发过程中的一些总结和经验

Swift中的weak和unowned关键字

Swift中没有了strong, assign, copy关键字,对于所有的class类型变量都默认采用了strong类型,如果需要指定使用weak,则需要添加weak关键字修饰。 正是由于这种默认的strong类型,在闭包中会引起循环引用,导致内存无法释放,为了能够在闭包(block)中正常释...

2018-07-04 15:50:27

阅读数 231

评论数 0

自动布局中的NSAutoresizingMaskLayoutConstraint

在使用自动布局的时候,如果是自己通过代码直接写的约束(即不通过SnapKit等第三方库或StoryBoard,Xib之类),那么就会出现NSAutoresizingMaskLayoutConstraint的问题。运气好的话,只是弹出warning,不影响实际布局,但是如果像我一样运气不好,就会出现...

2018-05-31 14:04:13

阅读数 206

评论数 0

Swift开发中遇到的注意点(二)

这段时间开发项目的同时在看第三方库Kingfisher的实现,感觉有一些东西也需要记录和总结一下。 6. public private(set),public fileprivate(set) 这和weak一样是变量的一种修饰,意思是该变量可以public访问,但是赋值是private的,如此...

2018-04-26 11:14:04

阅读数 120

评论数 0

Swift开发中遇到的注意点(一)

最近的项目是使用Swift进行的开发,在开发过程中,有一些东西和OC是不太一样的,需要特别的注意,这里也就简单的介绍和记录一下。 1. 单例模式 在OC中的单例模式一般都是使用dispatch_once来实现的,可是在Swift4中,该方法已经被废弃,也就是说单例模式的实现和之前不再一样。...

2018-04-13 10:29:49

阅读数 153

评论数 0

巧用阴影实现模糊字体的UILabel

最近,PM提出了一个新的需求,就是要把一个句子中的某些单词给模糊掉,实现提示用户的效果。要求如下图所示:需求图片我一下子能够想到的办法,就是利用UIVisualEffectView进行模糊,或者使用图片进行替换。首先说使用图片的方式,也就是把要模糊的单词...

2018-03-29 15:57:00

阅读数 451

评论数 0

创建一个带下划线的UILabel

所谓带下划线的UILabel,其实就是文本加下划线,这里我分为三种情况来讨论:文本内容只有一行;则可以在UILabel的下方添加一个新的UIView,作为下划线;文本下方有下划线,可以通过使用UILabel的attributedText属性来进行设置,实...

2018-03-29 15:56:58

阅读数 91

评论数 0

Swift中的dispatch_once

我们都知道,从swift3.0开始,dispatch_once被废弃了,而是开始推荐大家使用全局let变量,懒加载的全局变量或者静态成员来完成,但是在extension中,这些方法都会不太合适,因为extension中不支持添加存储类型的属性。首先尝试的...

2018-03-29 15:56:54

阅读数 193

评论数 0

Android知识小记录(一)

1. WebView的调试模式 在Android应用中,可以开启WebView的调试模式,这种模式下,可以使用chrome调试对应的网页代码,更方便我们对WebView的使用。 开启方式为:WebView.setWebContentsDebuggingEnabled(true); 2. Andro...

2018-03-29 15:56:49

阅读数 46

评论数 0

OC中#import 尖括号和引号的区别

在OC中,我们引用一个头文件,可以使用#import "a.h",也可以使用#import <a.h>,那么这两种方式有什么区别呢?和在C/C++中一样,使用&quo...

2018-03-29 15:56:46

阅读数 177

评论数 0

使用Pinyin4Swift进行汉字拼音转换

由于iOS的系统原生库已经支持了汉字转拼音,所以很多时候我们都可以直接进行转换,但是系统的转换很多时候都存在问题,在需要具体拼音的时候我们一般都会使用第三方库来进行转换。 在OC中,我认为Pinyin4ObjC是一个做的不错的库,支持汉字,语句到拼音的转换,而且支持多音字的处理。但不幸的是,该库的...

2018-03-29 15:56:43

阅读数 199

评论数 0

Kotlin+Databinding如何为布局添加自定义属性

在使用databinding时,我们经常会遇到需要对图片进行自定义的属性添加,以实现网络图片的自动加载和处理,这种处理在jiava中的话在对应的ViewModel中添加静态方法,就可以实现对应的处理,但是迁移到Kotlin之后,你会发现这种方法不好用了,那么我们应该怎么办呢? 如下面的布局文件: ...

2018-03-29 15:56:40

阅读数 224

评论数 0

Swift条件判断中的逗号

在Swift语言中,Bool值是用来进行条件判断的,可以进行&&以及||的操作,从而实现多个表达式共同判断。 但是由于Swift中存在可选项绑定,或者说是用let展开可选项的原因,有些地方条件判断中不能够使用&&来进行处理。比如,我们要在变量hasValue确实有值...

2018-03-29 15:56:37

阅读数 342

评论数 0

Fragment中创建菜单

最近由于工作原因,在开发Android平台的一些功能,有一个地方用到了根据内容修改菜单项的需求。 在iOS上可以在读取加载数据之后,直接修改navigationItem,就以为在Android可以同样的操作,结果却出现了menu为null的情况,引发了crash。于是把代码移动到了onCreate...

2018-03-29 15:56:34

阅读数 438

评论数 0

dispatch_group和dispatch_barrier的用法

前天被人问到使用GCD做依赖的用法,结果完全答不上来,下来之后就搜索了一下GCD的高级用法,发现自己对于GCD的掌握还很浅,像dispatch_group和dispatch_barrier的用法居然都不知道。 dispatch_group就是用来解决依赖问题的,或者说是用来解决并发序列的顺序执行问...

2018-03-29 15:56:30

阅读数 146

评论数 0

NSClassFromString的使用

在iOS开发中,有时候也会用到类似反射的情况,就会使用到NSClassFromString,也就是通过字符串获取到类。 对于系统类而言,直接使用名称就可以获取到对应的类,如NSClassFromString("UIViewController")可以获取到UIViewContr...

2018-03-29 15:56:27

阅读数 243

评论数 0

如何为圆角添加阴影

在iOS中为UIView添加阴影还是比较简单的,只需要设置layer的shadow属性就可以了,但是问题在于设置阴影之后,必须设置masksToBounds为NO,而圆角图片则要求masksToBounds必须为YES,两者相互冲突,会导致无法正确的添加...

2018-03-29 15:56:24

阅读数 203

评论数 0

关于循环引用的特例

前两天程序中出现了一个bug,就是有一个controller一直没有释放,然后重新进入页面时有创建了新的实例,直接导致了在弹出UIAlertController时会弹出多次,只能到代码中查找问题。 在代码中搜索self,对应的block中都正确使用了weakSelf,没有任何的block中对有对当...

2018-03-29 15:56:21

阅读数 33

评论数 0

FMDB的Tip

今天在调试代码的时候,发现有数据库中的一个数据总是获取不正确,导致一个应该为非负数的结果计算为负数,经过单步调试,发现在获取该数据时总是报一个错误: Error calling sqlite3_step (21: out of memory) rs 上StackOverFlow搜索了一下,在对比一...

2018-03-29 15:56:18

阅读数 38

评论数 0

iPad横竖屏切换中的注意点

最近公司要搞iPad的竖屏版本,使用了PrimaryOverlay的方式显示左侧的菜单栏,在实际开发过程中很是遇到了一些问题,这里就记录一下吧: 设备方向不等于实际方向 部分竖屏页面无法旋转到横屏 Popover出现覆盖问题 关于这几个问题,其实也并没有特别的麻烦,只是一时间会想不到解决思路而...

2018-03-29 15:56:14

阅读数 820

评论数 0

iPad使用相机中的一个坑(UIModalPresentationStyle,UIStatusBar)

今天解决了一个相机相关的bug,感觉有些人可能也会遇到,就说一下吧。 问题是这样子的,我们应用在用户信息页面,需要支持更换头像,这里需要能够直接从相机获取,同样的代码,在iPhone上没有任何问题,切换到iPad以后,发现照相页面总是会出现statusBar,无论是重写prefersStatusB...

2018-03-29 15:56:11

阅读数 362

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭