- 通过使用范畴(category,范畴、分类),可以为任何已有的类添加方法。
- ⚠️ 建议使用带有前缀(bnr_)的方法:实现了使用范畴的方法时,如果在类中已经存在名称相同的另一个方法,这个使用了范畴的方法就会替换掉之前存在的方法。
- 应该使用范畴来给已存在的类增加新方法,而不要在范畴中替换已经存在的方法:这种情况下应该创建该类的子类。
示例:
为 NSDate 类添加一个创建日期的类方法:
示例:
为 NSDate 类添加一个创建日期的类方法:
NSObject 类有一个名为 init
的方法。init
的示例代码如下:
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
向新创建的对象发送 init
消息,它就会初始化其下的示例变量。
Block 对象是一段代码。先给出一个 Block 对象的示例:
^{
NSLog(@"This is an instruction within a block.")
}
Block 对象也可以有实参和返回值:
^(double dividend,double divisor) {
double quotient = dividend / divisor
return quotient;
}
WKWebView 对象可以显示交互式 Web 内容,例如应用内浏览器。你可以使用 WKWebView 类将 Web 内容嵌入到你的应用程序中。 为此,创建一个 WKWebView 对象,像设置视图一样设置它,并向其发送加载 Web 内容的请求。
重要
从 iOS 8.0 和 OS X 10.10 开始,在你的 APP 中使用 WKWebView 添加网页内容,不要使用 UIWebView 或 WebView。
使用 initWithFrame:configuration:
方法创建了一个新的 WKWebView 对象之后,你需要加载 web 内容。使用 loadHTMLString:baseURL:
方法加载本地 HTML 文件或者使用 loadRequest:
方法开始加载 web 内容。使用 stopLoading
方法停止加载,并且使用 loading
属性查看 web 视图是否正在加载中。为对象设置委托属性以遵守 WKUIDelegate 协议,以跟踪 Web 内容的加载。
要允许用户在 web 历史页面中前进或者后退,为按钮设置使用 goBack
和 goForward
方法的动作。当用户不能在某个方向上再移动时,使用 canGoBack
和 canGoForward
属性禁用按钮。
默认情况下,web 视图会自动将出现在 web 内容中的电话号码转换为电话链接。当电话链接被点击时,电话应用程序就会启动并拨打该号码。要关闭这个默认的行为,用 WKDataDetectorTypes
设置 dataDetectorTypes
属性以不包含 WKDataDetectorTypePhoneNumber
标志。
你还可以使用 setMagnification:centeredAtPoint:
以编程方式设置 Web 内容第一次在 Web 视图中显示的缩放比例。 此后,用户可以使用手势来改变比例。
⭐️⭐️⭐️ 以下内容来源于官方源码、 README 文档、测试 Demo或个人使用总结 !
BEMCheckBox 和普通的 UI 控件用起来相差无几,本文我是对官方 Read.me 的翻译。
⭐️⭐️⭐️
以下内容来源于官方源码、 README 文档、测试 Demo 或个人使用总结 !
JVFloatLabeledTextField 是已经被称为 “浮动标签模式” 的 UX 模式的第一实现。
由于移动设备的空间限制,通常只依靠占位符作为标记字段的手段。 这就会产生 UX 问题,因为一旦用户开始填写表单,就不会出现占位符标签。
这个包含 UITextField 和 UITextView 子类的 UI 组件库旨在通过将占位符转换为悬停在浮动标签之上的浮动标签来改善用户体验。
可以有效解决移动设备上进行表单输入时,无法边看表单提示边进行输入的困境。
若常量仅局限于 ** 实现文件 (.m)** 之内,则在前面加字母 K;
若常量在类之外可见,则通常以类名为前缀。
static const NSTimeInterval ZOCSignInViewControllerFadeOutAnimationDuration = 0.4;
static NSString * const ZOCCacheControllerDidClearCacheNotification = @"ZOCCacheControllerDidClearCacheNotification";
static const CGFloat ZOCImageThumbnailHeight = 50.0f;
extern NSString *const ZOCCacheControllerDidClearCacheNotification;
// 示例
:hexoPostRenderEscape–>
// .h
UIKIT_EXTERN NSString *const HQFormRowDescriptorTypeProvinceAndCity;
UIKIT_EXTERN const CGFloat HQLTableViewCellHeight;
// .m
NSString *const HQFormRowDescriptorTypeProvinceAndCity = @"HQProvinceAndCityCell";
const CGFloat HQLTableViewCellHeight = 115;
并在实现文件中为它赋值。
只有公有的常量才需要添加命名空间作为前缀。尽管实现文件中私有常量的命名可以遵循另外一种模式,你仍旧可以遵循这个规则。