1.用mutableCopy变得更优雅
因为NSMutableDictionary不支持装箱的直接初始化
可以这样:
_iconsDict = [@{
@"0_image" : @"intro_icon_6",
@"1_image" : @"intro_icon_0",
@"2_image" : @"intro_icon_1",
@"3_image" : @"intro_icon_2",
@"4_image" : @"intro_icon_3",
@"5_image" : @"intro_icon_4",
@"6_image" : @"intro_icon_5",
} mutableCopy];
2.控制像素的底线高度
CGFloat lineHeight = (1.0f / [UIScreen mainScreen].scale);
3.如何获得数组
我们可以一个个对象地添加到数组,也可以这样优雅地获取:
NSString *emailListStr = @"qq.com, 163.com, gmail.com, 126.com, sina.com, sohu.com, hotmail.com, tom.com, sina.cn, foxmail.com, yeah.net, vip.qq.com, 139.com, live.cn, outlook.com, aliyun.com, yahoo.com, live.com, icloud.com, msn.com, 21cn.com, 189.cn, me.com, vip.sina.com, msn.cn, sina.com.cn";
_emailAllList = [emailListStr componentsSeparatedByString:@", "];
4.有时候一些类有两种可能,例如ODRefreshControl的情况:
声明的时候就定义为父类:
UIView *_activity;
这样去判断:
_activity = activity ? activity : [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
_activity.center = CGPointMake(floor(self.frame.size.width / 2), floor(self.frame.size.height / 2));
_activity.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
_activity.alpha = 0;
if ([_activity respondsToSelector:@selector(startAnimating)]) {
[(UIActivityIndicatorView *)_activity startAnimating];
}
[self addSubview:_activity];
甚至,严谨到提供修改和返回其中的指示类型:
@property (nonatomic, assign) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
重写Get/Set:
- (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle
{
if ([_activity isKindOfClass:[UIActivityIndicatorView class]]) {
[(UIActivityIndicatorView *)_activity setActivityIndicatorViewStyle:activityIndicatorViewStyle];
}
}
- (UIActivityIndicatorViewStyle)activityIndicatorViewStyle
{
if ([_activity isKindOfClass:[UIActivityIndicatorView class]]) {
return [(UIActivityIndicatorView *)_activity activityIndicatorViewStyle];
}
return 0;
}
5.获取中心的方法
self.centerPoint = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));