创建: 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. 项目整理--Echarts前端后台的贯通写法

    项目整理–Echarts前端后台的贯通写法 注:下面所有内容建立在FH admin开源框架和eharts插件基础上,建议观看本案例者进行了解. 业务逻辑 绘制两张图表.分别显示城市空间库和其它数据仓库 ...

  2. iOS之中国银联移动支付控件升级的问题

    自从11月以来,如果用户安装了集成了中国银联手机支付SDK的app,那么在使用银联支付的时候,会发现,不能调用银联支付方式,并且弹出一个提示”银联手机支付已升级请更新客户端8100010”.如下图: ...

  3. LeetCode 3_Longest Substring Without Repeating Characters

    LeetCode 3_Longest Substring Without Repeating Characters 题目描写叙述: Given a string, find the length of ...

  4. XStream 数组(List)输出结构

    <!-- 期望的DOM树 --> <Articles> <item> <Title>微信SDK初步结构</Title> <Descri ...

  5. SQL基础--&gt;层次化查询(START BY ... CONNECT BY PRIOR)

    --====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY ...

  6. Yii自动生成项目

      我喜欢尝试新鲜的东西.以前一直用gii生成工具,前几天突然发现用shell的方法,感觉很不错.特此总结一下yii的几个命令.   gii的工具页面: - Controller Generator ...

  7. wamp配置虚拟域名

    1.打开apache下httpd.conf 我的目录是在F:\wamp\bin\apache\apache2.2.22\conf\httpd.conf 2.去掉这两行前面的#注释 LoadModule ...

  8. 第一次OllyDbg逆向记录(分析思路和注意点&其他文章)

    OllyDbg 操作菜单栏.工具栏.快捷键 C++调用加强 目录 OllyDbg 操作菜单栏.工具栏.快捷键    1 一.    载入观察    1 1.静态载入观察:    1 2.OD动态观察  ...

  9. router的安装和基本配置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 【读后感】Netty 系列之 Netty 高性能之道 - 相比 Mina 怎样 ?

    [读后感]Netty 系列之 Netty 高性能之道 - 相比 Mina 怎样 ? 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商 ...