33.Autolayout 如果传属性需要用下滑线来声明约束:
self.loginView = [[SYLoginView alloc] init];
[self.view addSubview:self.loginView];
NSArray* constraints1 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[_loginView(==width)]"
options:0
metrics:@{@"width":@300}
views:NSDictionaryOfVariableBindings(_loginView)];
NSArray* constraints2 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[_loginView(==height)]"
options:0
metrics:@{@"height":@300}
views:NSDictionaryOfVariableBindings(_loginView)];
[self.view addConstraints:constraints1];
[self.view addConstraints:constraints2];
如果上面的_loginView改成self.loginView那就蛋疼了,各种报错,原理就是iOS内部的处理器规定如此,这也是access的作用之一,我们照做就好啦!
34.这样的写法multiplier需要写具体值出来:
NSLayoutConstraint* constraints2 = [NSLayoutConstraint constraintWithItem:_loginView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:_loginView
attribute:NSLayoutAttributeHeight
multiplier:1.33 constant:0];
这个multiplier值一定要写具体值,例如4/3这种无效小数,编译器是不会帮你算的
35.
Java C++都有显式的抽象类:用关键字abstract来修饰
OC原生的却非常非常少,这里介绍一个非常常见的:手势类:
UIGestureRecognizer
这个类,是其他所有手势的共同父类,这个类不能够直接使用(因为没有意义,没有具体的手势处理),而是要用他们的子类
36.
遇到一些弹框(视图或者啥)的时候,如果没有动静,试着延迟一点点时间在弹出。(原因还在探寻ing)
37.
有些路径十分重要,例如 app文件下一个目录:
[[NSBundle mainBundle] pathForResource:@"Frameworks/XXXX.frameworks" ofType:nil]; //Frameworks问价下的动态库
38.
遇到一些找不到图片的神奇情况,工程有,也没有删掉等等,可以查看target的关系是否勾选
39.
非常坑爹的一次经历:
@property(nonatomic) CGAffineTransform transform; // default is CGAffineTransformIdentity. animatable
iOS的这个缩放是往中间缩的,这样,无论我怎么调整Center都没有意义
并且修改了transform形变之后的:
_flowMenu.transform = CGAffineTransformMakeScale(0.9, 1);
bounds的宽高都没有发生变化,但是frame就会发生变化
参考这个不错的文章:
http://blog.csdn.net/shancheng966/article/details/45290287
http://www.2cto.com/kf/201505/402421.html
40.互不牵涉的设置Frame是可以和 masonry 混用的
_myTableView = ({
TPKeyboardAvoidingTableView *tableView = [[TPKeyboardAvoidingTableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
[tableView registerNib:[UINib nibWithNibName:kCellIdentifier_Input_OnlyText_Cell bundle:[NSBundle mainBundle]] forCellReuseIdentifier:kCellIdentifier_Input_OnlyText_Cell];
tableView.backgroundColor = kColorTableSectionBg;
tableView.dataSource = self;
tableView.delegate = self;
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.view addSubview:tableView];
[tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view);
}];
tableView;
});