iOS-界面开发
1. 控件为什么用weak修饰:控件已经被UIView强指针指向,如果用strong, 则viewController也将强指针指向控件, 在view销毁时可能无法销毁该控件。
2. command + shift + h : 模拟器回到主界面
command + shift + h(h连按两下) : 打开历史app
control +
3. touch up inside : 点击
4. 继承于UIControl的控件才能连线方法
5. storyboard中只有UIView可以有子控件(孙子控件不是子控件)
6. 控制器的view的父控件是UIWindow, 在viewDidAppear中可以看到,viewDidLoad看不到
7. frame: 以父控件的左上角为坐标原点
bounds: 以自己左上角为坐标原点(iOS9以后中心点不变,向四周延伸)
label.frame.origin.x += 10 (错误)
8. UILabel 的lineNumber设置为0,是自动换行
9. shadow
10. [Image imageNamed:]: png不需要后缀
11. imageView.clipsToBounds = YES, 裁掉多余
12. 毛玻璃效果:把UIToolBar设置为imageView的子控件
13.image.size.width
14. 设置动画:
imageView.animationImages=arr;
imageView.animationRepeatation = 0;
imageView.animationDuration = 0.5
15. 打断点, po NSHomeDirectory()
16. 加载Assets.xcassets里面的图片:
打包后变成Assets.car, 拿不到路径,只能通过imageNamed:来加载图片,不能通过imageWithContentsOfFile加载图片
加载放到项目中的图片:
可以拿到路径,可以通过imageNamed:加载图片,也可以通过imageWithContentsOfFile加载图片
17. performSelector withObject afterDelay
18. imageNamed: 就算指向它的指针被销毁,该资源也不会再内存中干掉, 放到Assets.xcassets的图片默认有缓存,图片经常使用用这种方式
imageWithContentsOfFile: 指向它的指针被销毁,该资源会被干掉,没有缓存,不经常使用或大批量的图片时使用此种方式
19. [NSBundle mainBundle] pathFor
[NSBundle mainBundle] urlFor
20. AVPlayer
play
pause
replaceCurrentItemWithPlayerItem:
rate
21. 数据懒加载, 重写Array的get方法,全局可用,且只加载一次
22. plist : 属性列表文件
23. 在init方法中加入子控件,在layoutSubviews中设置子控件的frame, 在数据模型的set方法中设置数据
24. 创建对象用init或initWithFrame,最终都会调用initWithFrame, 所以自定义控件时,重写initWithFrame方法就行了
25. 从xib加载会调用initWithCoder方法,不会调用Init或initWithFrame
26. 在xib基础上再用代码添加子控件,要写在awakeFromNib方法
27. xib提供一个类方法创建:[ShopView shopview]
28. NSStringFromClass
29. 设置让某控件看不见:
alpha = 0 或 hidden = YES