创建: 2018/04/19

完成: 2018/04/20

View的创建
 创建  storyboard上操作
 与代码连接

● 目的: 通过代码控制view

● 按住option拖动

View的坐标
 view的坐标

左上为原点,

往右+x, x为width

往下+y, y为height

CGRect

处理x, y, width, height的构造体

● 生成:

CGRect(x: x, y: y, width: width, height: height)

● 属性

minX

midX

maxX

 

minY

midY

maxY

 
   
 CGPoint

处理坐标x, y的构造体

● 生成:

CGPoint(x: x, y: y)
 CGSize

处理长宽width, height的构造体

● 生成:

CGSize(width: width, height: height)
 属性
 frame  表示在父view中位置的CGRect
 bounds

以自己为中心的CGRect

● 原点自己左上

   
在程序里创建View
   addSubView(view: UIView)

let viewByCode = UIView.init(frame: CGRect.init(x: , y: , width: , height: ))
viewByCode.backgroundColor = UIColor.green
topAreaView.addSubview(viewByCode)
   
UIView
   所有UI都是UIView的子类
 

● 设定坐标          CGRect

● 设定border

● 增加subView    addSubView

● 下面的

 属性

contentMode

  对应项目条: Content Mode
 isUserInteractionEnabled

是否接受Event

对应项目条: User Interaction Enabled

 alpha

不透明度

对应项目条: alpha

 backgroundColor

背景色

对应项目条: Background

 isHidden

是否隐藏

对应项目条: Hidden

 clipsToBounds

超过边界的是否删除

效果相当于css的overflow: hidden

对应项目条: Clip to Bounds

 方法
 removeFromSuperView  从所属的super view里删除自己
 bringSubView(toFront:)  把指定的sub view移到最前面
 sizeToFit  根据内容调整大小
   
   
   
UIImageView
   ● 用于展示图片
 content mode

对应项目条: content mode

 Scale to Fill  伸缩图片填满view
 Aspect Fit  保持宽高比放入view
 Aspect Fill

保持原尺寸填满view

多余部分溢出, 设置Clip to Bounds来切除溢出部分

 方位(Left, Right, ...)  靠某一边对齐, 尺寸不变
   
UIScrollView
 

UITableView, UICollectionView的父类

 设置滚动内容大小

● 通过autolayout自动设置

● contentSize属性

 带项目条的属性 
 indicatorStyle

滚动条的款式

对应项目条: Indicators

 showsHorizontalScrollIndicator

是否显示水平滚动条

对应项目条: Shows Horizontal Indicator

 showsVerticalScrollIndecator

是否显示垂直滚动条

对应项目条: Shows Vertical Indicator

 isScrollEnabled

是否可滚动

对应项目条: Scrolling Enabled

 isDirectionLockEnabled

滚动中是否固定方向

对应项目条: Direction Lock Enabled

 keyboardDismissMode

滚动时是否关闭键盘

● 内部有text field/text view是自动设为有效

对应项目条: Keyboard

 alpha

不透明度

对应项目条: Alpha

 backgroundColor

背景色

对应项目条: Background

 Hidden

是否隐藏

对应项目条: isHidden

   
 其他属性
 contentSize  滚动内容的大小
 scrollsToTop

是否触击状态栏返回最顶部

默认 true

   
   
   
 方法
 scrollRectToVisible(rect: animated:) -> Void  
   
   
   
   
UITableView
 重复利用cell

● 提高运行效率

 注册利用的cell

● 用代码注册则为代码里的状态.

也就是说storyboard上的设定全都不生效

● 不要代码注册, 直接storyboard上注册

register(cellClass: forCellReuseIdentifier:) -> Void

middleTableView.register(MiddleTableViewCell.self, forCellReuseIdentifier: "sample")
 使用注册的cell  存在的时候用存在的, 不存在则自动新建

dequeueReusableCell(withIdentifier: for: )

例:

let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath)
 datasource

必须继承UITableViewDataSource

分出去单独类时, 要继承NSObject

 必须的方法

设置session的行数

func tableView(_ tableView: UITableView numberOfRowsInSection section: Int) -> Int
 设置每行表示的cell

func tableView(_ tableView: UITableView cellForRowAt indexPath: IndexPath) -> UITableViewCell

● 调用时间: 生成cell, 重绘cell时(如划动时移出view的cell)

   
 其他方法
 设置section数

func numberOfSections(in tableView: UITableView) -> Int

设置section的header标题

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
   
   
   
   
   
   
   
   
 delegate 

必须继承UITableViewDelegate

● 分出去单独类时, 要继承NSObject

● 没有必须的方法, 可以不实现

   
   
   
   
   
   
   
   
   
UICollectionView
   和UITableView差不多

注册与

再利用cell

 注册

● 用代码注册则为代码里的状态.

也就是说storyboard上的设定全都不生效

● 不要代码注册, 直接storyboard上注册

bottomCollectionView.register(BottomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
 再利用

存在的时候用存在的, 不存在则自动新建

collectionView.dequeueReusableCell(withReuseIdentifier: self.reuseIdentifier!, for: indexPath)

dataSource

必须继承UICollectionViewDelegate

● 分出去单独类时, 要继承NSObject

● 没有必须的方法, 可以不实现

必须

 设置元素数

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int)
-> Int
 设置cell

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
-> UICollectionViewCell
   
 delegate 

必须继承UICollectionViewDelegate

● 分出去单独类时, 要继承NSObject

● 没有必须的方法, 可以不实现

   
   

iOS View的更多相关文章

  1. iOS View 模糊效果(毛玻璃)

    iOS View 模糊效果(毛玻璃)   相关资料 http://stackoverflow.com/questions/18404907/using-gpuimage-to-recreate-ios ...

  2. ios View 向上拉界面源码

    如下的资料是关于ios View 向上拉界面的代码. #pragma mark - 上升效果- (void)ToUpSide {          } - (void)moveToUpSide {   ...

  3. ios view的frame和bounds之区别(位置和大小)

    前言: 学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bo ...

  4. iOS View的Frame和bounds之区别,setbounds使用(深入探究)

    前言: 在ios开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,较难理解. 一.首先,看一下公认的资料: 先看到下面的代码你肯定就明白了一 ...

  5. iOS view和viewController的生命周期

    一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并 ...

  6. ios View之间的切换 屏幕旋转

    6.3  View之间的切换 在上面的练习中我们通过移动组件的位置和调整组件的大小来处理横向与纵向的界面布局.但是在界面中有很多组件的时候,对每个组件都进行这样的操作确实是一个麻烦的事情.下面我们看看 ...

  7. IOS view拖拽(触摸事件)

    • iOS中的事件可以分为3大类型 触摸事件 加速计事件 远程控制事件 响应者对象 • 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事 件.我们称之为“响应 ...

  8. IOS View编程指南笔记

    我们所示程序 对于一切IOS APP来说.我们看的的内容,都是UIView所呈现的. UIView如场景,UIWindow如舞台.UIView粉墨登场在UIWindow这个舞台上,使我们看到丰富多彩的 ...

  9. 解决 iOS View Controller Push/Pop 时的黑影

    那么如何解决这个问题呢? 实际上很简单,如果这个 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的, ...

  10. ios view改变背景图

    一般我们设置 一个view的背景  可以通过  在view上放一个imageView 来显示背景图片 这里介绍另外一种方法 可以直接通过改变view.backgroundColor的值 来达到上面的效 ...

随机推荐

  1. C++经典面试题解析

    1. // BlankTest.cpp : 定义控制台应用程序的入口点. //题目:将一个文件中的一组整数排序后输出到另一个文件中 #include "stdafx.h" #inc ...

  2. Task C# 多线程和异步模型 TPL模型 【C#】43. TPL基础——Task初步 22 C# 第十八章 TPL 并行编程 TPL 和传统 .NET 异步编程一 Task.Delay() 和 Thread.Sleep() 区别

    Task C# 多线程和异步模型 TPL模型   Task,异步,多线程简单总结 1,如何把一个异步封装为Task异步 Task.Factory.FromAsync 对老的一些异步模型封装为Task ...

  3. Python - colour-science库

    http://nbviewer.jupyter.org/github/colour-science/colour-ipython/blob/master/notebooks/colour.ipynb# ...

  4. 深入理解Atomic原子操作和volatile非原子性

    原子操作可以理解为: 一个数,很多线程去同时修改它,不加sync同步锁,就可以保证修改结果是正确的 Atomic正是采用了CAS算法,所以可以在多线程环境下安全地操作对象. volatile是Java ...

  5. 浅谈C#中常见的委托

    一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不 ...

  6. 谈谈java垃圾回收机制

    近期看了一些关于垃圾回收机制的文章,总结一下. 垃圾回收器回收程序不在使用的对象占用的内存,也就是对象不可达,比方说对象被置为null. 要回到java的垃圾回收机制,从下面三个方面去回答: 1.哪些 ...

  7. Pattern: API Gateway / Backend for Front-End

    http://microservices.io/patterns/apigateway.html Pattern: API Gateway / Backend for Front-End Contex ...

  8. iOS 开发常用的调试工具

    前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就是突然想吟湿了.不过博主作为网络工程专业的好青年,曾经的 ...

  9. java性能时间与空间消耗

    Java性能时间与空间消耗 一.减少时间消耗 标准代码优化 (1) 将循环不变量的计算移出循环 例如:for (int i=0; i<size()*2; i++) { ... } ------& ...

  10. 关于View转化成bitmap保存成图片

    产品今天说项目分享时要分享出一张  封面图片 + 几行文字 + 二维码图片 的图片. 思索了一下 封面图片和二维码图片让后台给接口得到地址, 主要还是找个方式得到一个包含这些内容的图片.于是就想能不能 ...