最近遇到一个 UINavigationBar 的 titleView 问题。自定义了一个 UIView,将其赋值给 navigationItem.titleView 。但是在 iOS 8 和 iOS 9 上导航栏并不能居中问题。但是 iOS 10 和 iOS 11 是可以正常居中。那么怎么解决呢?
一个 UI 小尝试~
一个链式的 UI 小尝试。。
sizeof 和 MemoryLayout
先扯个题外话。
最近在看 OpenGLES,碰到 glBufferData 函数对此递归懵逼。
|
|
第三个参数需要计算顶点数据的大小。很多教程都是用 Objective-C 去写的,因此使用 sizeof 函数很容易就计算得到。但是 Swift 则得使用 MemoryLayout 去获取。
class property
在看文档的时候,发现 NSThread 的一个方法。
|
|
记录一次更新Masonry的问题
今天遇到一个问题,项目中使用到了Masonry这个知名的第三方库。因为 Pod-Masonry-iOS Deployment Target 是 6.0,导致项目中使用到mas_topMargin
等属性会报错,然后导致了闪退。
|
|
UIButton背景色
有一个需求,相信业务需求中总会碰到的吧。按钮点击前背景色是这样的,点击后背景色又是这样的。那么有什么好的方法实现呢?
Objective-C 实现 map
Swift 中有一系列的高阶函数可以使用,比如 map/filter 等。但是 Objective-C 这门古老的语言没有。那么要如何来实现呢?
DateFormatter
最近遇到一个问题。一个关于时间的 UI 显示,需要显示上午/下午
。一般来说,就是在 DateFormatter 里面进行设置 dateFormat 即可。但是一般都是AM/PM
。后来发现 iOS/macOS 比较都可以显示上午/下午的。苹果的开发团队不可能还傻到得自己去算时间吧。于是看 DateFormmatter 的文档,发现了 Locale 这个东西。
说了这么多废话。总算进主题了。该篇是整理下 DateFormatter。老司机就不用往下看了。😂。
Swift —— 关键字
整理下 Swift 的一些关键字。主要包括(不定时更新):
- @inline(__always) & @inline(never)
- @discardableResult
- mutating
- associatedtype
- Designated & Convenience & Required
Swift —— Access Control
整理下 Swift 的 Access Control~属性访问级别。
众所周知,Swift 并没有像 Objective-C 那样,有着泾渭分明的 .h 和 .m 文件可以来决定哪些参数、方法需要暴露,哪些不需要暴露。Swift 提供了五种访问级别(assess level),分别是 open、public、internal、fileprivate、private。
level | |
---|---|
open | open 的级别,也是最高的 |
public | public 的级别次之 |
internal | internal 是默认的访问控制级别 |
fileprivate | 使用 fileprivate 定义的方法和属性,只在该文件中均可以使用,包括该文件中的extension |
private | 使用 private 定义的方法和属性,只包括该文件中该类或结构体等的extension。 |