CS193笔记 第四讲 视图

本讲简介:介绍了UI中的最基本的元素 -- 视图。并通过一个演示进行了详细的讲解。

视图(UIView)

做为最基本的UI元素,它有两种初始化方式

1,init(frame: CGRect)    // UIView 由手工建立

2,init(coder: NSCoder)    //View是在storyboard里创建


awakeFromNib()   //参考第六讲中视图控制器的生命周期部分

UIViewControler有一个根视图

removeFromSuperView()方法是作用在subView上的

Autolayout  vs  手工编写代码

尽量使用Autolayout,控件较多的时候要分组。手工编写代码也可以先使用autolayout调整效果。

像素(pixels) vs 点(points)

最初像素和点是一一对应的。从retina屏幕开始一个点可以对应2x2或3x3(plus设备)个像素了。 所以准备资源的时候需要准备不同分辨率的素材。这些资源通过名字中加@2x或 @3x来区分

contentScaleFactor : CGFloat of UIView

Bounds vs Frame

Bounds 代表了view的绘制区域。Bounds的原点在左上,然后向右和向下增大。单位是点,不是像素。Bounds应用的是自己的坐标系统。

Draw 里面不要使用 Frame和 Center 属性(只用于定位)。View的旋转可能会引起Frame的变化。而Bounds不会改变。


本讲的演示。可以从 “https://github.com/mayongl/CS193P” 下载本讲的代码。这里只谈三个小点

1,在 storyboard 里面看 ViewController 是有一个 View 的。如果不在上面新建 view,直接把它的类改成 FaceView 效果也是一样的。但 @IBDesignable 就不工作了。

2,这个演示里,使用了 “reset to suggested constraints" 进行自动布局。然后会自动生成4个constraints,要浏览它们,并适当编辑。对contraints中的值要尽量使用 standard 或 0。

3,CGRect的功能和属性有很多,值得读一下文档和定义。


本讲笔记写的有些简单。欢迎留言提问。谢谢。

你可能感兴趣的:(CS193笔记 第四讲 视图)