Skip to content

Instantly share code, notes, and snippets.

View Josscii's full-sized avatar
💭
??

Josscii Josscii

💭
??
View GitHub Profile
@Josscii
Josscii / xib.md
Last active March 10, 2017 09:10
iOS 关于 xib 的那些事 (一)

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 March 31, 2017 01:57
UIStatusBar 补充

补充

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 April 1, 2017 02:26
image slice 补充

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

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

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

@Josscii
Josscii / weixin.md
Last active December 22, 2023 21:16
wechat_spider 原理扫盲帖

wechat_spider 原理扫盲帖

这篇文章旨在为刚接触 wechat_spider 的人提供一个快速了解这个项目基本原理的途径。

思路

首先我们随便进入一个微信公众号详情页。

@Josscii
Josscii / performance.md
Last active June 8, 2017 01:45
iOS 保持界面流畅的学习路径

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


- Runloop

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

官方文档

@Josscii
Josscii / lldb.md
Created June 6, 2017 12:50
lldb 学习总结

LLDB 命令

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

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

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

- help

@Josscii
Josscii / oc-runtime.md
Last active December 20, 2021 15:01
oc 运行时学习记录
@Josscii
Josscii / oc-common-tips.md
Last active July 21, 2017 08:40
Objective-C 技巧总结

Objective-C 技巧总结

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

import

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

const

@Josscii
Josscii / custom transition.md
Last active July 21, 2017 02:23
自定义转场

自定义转场

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

  • model presentation
  • navigation push/pop

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

protocol 解释

@Josscii
Josscii / cornerRadius.md
Last active September 2, 2017 01:51
关于 iOS 中圆角

关于 iOS 中的圆角

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

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

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

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