Skip to content

Instantly share code, notes, and snippets.

💭
??

Josscii Josscii

💭
??
Block or report user

Report or block Josscii

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@Josscii
Josscii / xib.md
Last active Mar 10, 2017
iOS 关于 xib 的那些事 (一)
View xib.md

Xib 是什么以及它的加载方式

在 iOS 开发中, 我们会经常接触到的 xib 文件, 还能听到它的另一个名字 nib, 其实它们俩差不多是指代同一个东西, 只不过 xib 是编译前, nib 是编译后, 还有后来的 storyboard, 它们其实都 xml 文件, 通过右键这些文件然后 open as > source code 就可以看到文件的源码.

如果你仔细比对 xib 和 storyboard 的 xml 的文件内容, 你会发现, 差别很小, 其中两个重要的差别是:

  • document type 不同: storyboard 的 type 是 com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB, 而 xib 的 type 是 com.apple.InterfaceBuilder3.CocoaTouch.XIB.
  • storyboard 相对于 xib 多了一个 scene 的 概念, 所有 xml 里会有一个顶层标签是 scenes 而 xib 里的顶层标签是 objects.

xib 和 storyboard 就像一个配置文件, 我们在图形化界面里将我们想要的界面搭建好, 然后我们调用系统提供的方法来读取这些文件来构建一个个对象.

@Josscii
Josscii / statusbar.md
Last active Mar 31, 2017
UIStatusBar 补充
View statusbar.md

补充

1,文章中提到在 View controller-based status bar appearance 为 YES 时,

2、在viewDidload中调用:[self setNeedsStatusBarAppearanceUpdate];

这一步经过测试是没有必要的,我在文档中找到这个 api 的注释:

This should be called whenever the return values for the view controller's status bar attributes have changed. If it is called from within an animation block, the changes will be animated along with the rest of the animation block.

@Josscii
Josscii / imageslice.md
Last active Apr 1, 2017
image slice 补充
View imageslice.md

关于 image slice,除了直接在 asset catalog 里面可以设置外,UIKit 也提供了一个 api 供我们使用。

@available(iOS 6.0, *)
open func resizableImage(withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode) -> UIImage

但是这个 api 却不如用 asset 拖动强大,我们通过来看一下区别。

@Josscii
Josscii / lldb.md
Created Jun 6, 2017
lldb 学习总结
View lldb.md

LLDB 命令

lldb 中的命令总结下来有两点:

  1. 原则上只要敲够足够的命令字符,而不引起歧义,都可以执行。
  2. 某些较长的命令有 abbreviation(缩写)。

下面是一些分类示例,只列举了常用的和它的一些缩写,其他子命令可以通过 help 命令查看详情。

- help

@Josscii
Josscii / performance.md
Last active Jun 8, 2017
iOS 保持界面流畅的学习路径
View performance.md

这篇 tip 是我在探究如何保持 iOS 界面流畅的学习路径。


- Runloop

了解 Runloop 有助于帮助我们明白 iOS 程序是如何运行的。

官方文档

View custom transition.md

自定义转场

iOS 中自定义转场指的是 view controller 之间的切换,分为两种类型:

  • model presentation
  • navigation push/pop

系统为这两种类型都提供了默认的实现,对于 model presentation 来说,还可以通过指定 modalTransitionStyle 来达到不同的转场效果。

protocol 解释

@Josscii
Josscii / drawing.md
Last active Jul 21, 2017
iOS 绘图那些事
View drawing.md

iOS 绘图那些事

在 iOS 中,我们通过 Core Graphics (也叫 Quarz 2D) 来绘图,而在 Core Grapihcs 之上的 UIKit 又封装了如 UIBeizerPath 等高级 api,这里就来简单的谈谈基础和技巧。

draw(_:)

对于 UIView 来说,我们可以重写 draw(_:) 方法来进行绘图,官方文档中对它的描述是:

Specifically, UIKit creates and configures a graphics context for drawing and adjusts the transform of that context so that its origin matches the origin of your view’s bounds rectangle.
@Josscii
Josscii / oc-common-tips.md
Last active Jul 21, 2017
Objective-C 技巧总结
View oc-common-tips.md

Objective-C 技巧总结

这是看 Objectiv-C for Swift Developer 这本书的总结,也有一些自己的补充。

import

<> 代表在系统库中查找头文件,而 "" 代表在项目中以及系统库中查找头文件。所以对于库来说,两种方式都是可以的,只是 <> 更好。当然 #include 是一定不能用的,因为可能出现多次引用的问题。

const

@Josscii
Josscii / cornerRadius.md
Last active Sep 2, 2017
关于 iOS 中圆角
View cornerRadius.md

关于 iOS 中的圆角

之所以要讨论 iOS 中的圆角,是因为圆角在各种 app 中大量被使用,而普通设置圆角的方式又会触发离屏渲染导致 FPS 的下降。

对于 UIImageView 来说,普遍的做法是将 image 通过 Core Graphics 画出一张带圆角的图片。像头像这样尺寸相对固定的图片来说这样做是很简单的,这里 详细的探讨了这件事,但是对于大图片的展示,要多考虑的一个问题是 contentMode。

有两种思路,第一种思路是剪裁图片,让这张图片刚好为相对应 contentMode 的 imageView 呈现的图片的大小。

计算的代码在这个 gist 中可以找到:

View iOS 分页调研.md

iOS 分页调研

最近在实现 iOS 中分页的时候,看了一下各大新闻 app 中的方案,初步总结如下:

今日头条

collectionView + 数据缓存的方案 + 没有 contentOffset 缓存

腾讯新闻

UIScrollView + 子视图 + 不控制视图数量,没有缓存机制

You can’t perform that action at this time.