ios个人小结

NSForegroundColorAttributeName自学没什么动力了,开始写学习总结给自己动力!

textView添加背景的方法:首先弄个imageView控件(用textView盖住),然后给同时选中textView和ImageView,设置相同的4个edges,然后把textView的view设置为透明.

update frames要刻update all的而不是selected的,不然有些没更新的控件感觉明显不对.

并不是每个控件都要设置绝对约束的,比如聊天文字的背景图片就完全根据聊天文字的位置变动的,因此只需要先设置文字(lable)的相对其他控件的约束,背景图片则完全设置与文字间的约束就可以了.

在storyborad中,控件器间的数据传递大概这样实现(传递了buddy这个对象过去):[selfperformSegueWithIdentifier:@"ChatSegue"sender:buddy];

-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender{

iddestVc = segue.destinationViewController;

if([destVcisKindOfClass:[XMGChatViewControllerclass]]) {

XMGChatViewController*chatVc = destVc;

chatVc.buddy= sender;}}

MVC是苹果的一种权威规范,带来的问题是controller的处理业务逻辑太多,经常几百行上千行.mvvm则controller+view viewmodel model 有有一个原则

1,controller引用viewModel,2viewModel引用model,3viewModel里面不能拥有控件.

NSMutableString清空要用 [str setString:@""],不要用str = nil;

view setNeedsLayout是调用layoutSubview的方法,而layoutifNeeds是刷新内部那些约束;

只要遵守了协议里面的类并且有ui_appearance_selector的属性就可以全局改变(像换肤一样),如UIView和UIBarItem就遵守了这个协议,应该先设置好appearance再addSubview.反过来的话就没效果了.说明已经添加到view的控件就不能用appearance了.

为什么appdelegate有个uiwindow强引用,因为像一个女人有乳房但是没有长出来,所以app启动的时候要alloc一个uiwindow给他才有窗口,self.window = [uiwindow alloc] init];这样app和window有关联,且一个app只有一个window,而不是uiwindow *win = [uiwindow alloc] init]就可以了,还要把它赋值给self,还可以像全局变量一样保住乳房.

只要是uitabbarcontroller的子控制器(包括navigationcontroller和UIviewcontroller)都能设置uitabbaritem的属性.

button的sizetofit作用就是不用设置button的尺寸,尺寸默认会按照button的图片匹配.

只要修改了navigationControlle左上角的leftItem就会把手势左右滑动就没了.解决办法是实现代理方法getstureRecongnizeShouldBegin return yes就ok了.

自定义导航的返回(leftItem)的时候要先写好button再调用[super pushviewcontrolle];这样以后有需要自定义的返回就可以在对应控制器自定义来覆盖.

viewdidload只会调用一次,所以一般只在那里写代码,而viewWillAppear viewdidapear等可能会调用多次.

xib编辑label换行要按住option键.

dict传number的时候不能写1,要写@1,用xib弄cell一定记得写好identify

如果搜不到文件,可能是storyboard或xib

autolayout本质还是要转换为frame的,所以设置了约束后还是可以直接通过代码改变他的frame,但是苹果建议要改就改约束而不要直接改frame.

控件突然不见了可以给他来个redcolor呀.

烤贝类,然后改名,记得改#Import的h文件,不然一直报错.

去公司看到一个很长的类,不知道哪些方法先调用就nslog每个方法就可以了呀.

先调用heightforrowatindexpath再调用cellforrowatindexpath

不用担心数据源(数组)只有0object,会不会报空指针异常,因为会先调用numberofrowsinsection,返回的是数组的count,如果count为0自然就不会调用cellforrowatindexpath了.

[self.navigationController popViewControllerAnimated:YES]把self pop掉了self就为nil了那self.navigationController就为nil了!

你可能感兴趣的:(ios个人小结)