首页 > 其他分享 >iOS 开发入门 3-基础: iOS 视图控件 UIView

iOS 开发入门 3-基础: iOS 视图控件 UIView

时间:2023-07-08 16:32:17浏览次数:45  
标签:控件 self iOS 视图 100 view UIView

相信大家通过前两篇文章已经大致了解了OC当中的数据组成部分,今天正式开始咱们iOS开发最主要的一个环节视图控件的使用.

在正式开始讲解UIView之前我们需要先了解下什么是视图控件.其实视图控件的概念很好理解,比如说我们在打开某一应用的时候在手机上所看到的所有界面组成元素都是视图控件,视图控件可以按照组成数量来分为组合视图控件和单一视图控件,单一视图控件很好理解比如今天要讲的UIView就是单一视图控件,以后要说到的UILabel,UIButton,UITextField等都是单一视图控件,组合视图控件的概念就是通过N多个单一视图控件相互组合封装为一个整体来实现某一功能的模块就称之为组合视图控件,比如以后我们要涉及到的自定义cell.这些只是一个概念性的东西,以后慢慢都会了解到的,废话不多说开始今天的内容UIView.

1).UIView

作为一个视图控件其根本作用就是让用户可以直观的查看所需的内容,UIView其主要作用是用于组合控件后的幕布背景使用,其本身没有任何可加载数据内容的地方,所以UIView一般都是用于承载组合式图的父视图来使用.(父视图的定义就是当前指定视图的上一级视图,也就是承接当前视图布局的那个视图控件就是父视图)

1.UIView的基本使用

初始化

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];初始话View视图 并确定视图在屏幕中的位置 CGRectMake(100, 100, 100, 100) 此参数为结构体后面的四个参数分别问(X:屏幕的横向起点位置,Y:屏幕纵向起点位置,width:从X起点位置横向延伸的长度,height:从Y起点位置纵向延伸的长度)需要注意的是次结构体是有视图图层区分的不同的父视图相对起点位置不同.

初始化中的alloc是申请内存空间,告诉控制器我当前需要用这个视图,并且一定要注意的一点就是iOS的内存管理机制是通过引用计数来管理的,现在大多开发都用的是ARC开发,ARC的好处就是不用我们手动管理内存,但是并不是绝对的不需要,关于内存管理的操作会单独有文章来解释的,后期会看到.这里只需要知道alloc是申请内存的操作就可以了.

初始化中的init是来真是给创建的对象添加应有的内容,例如initWithFrame:用来确定视图的位置.此时创建对象的引用计数就为1

[self.view addSubview:view];将初始化完成的视图添加到当前窗口视图上(self.view就是当前的窗口视图,addSubview:是添加视图控件到窗口视图的方法)

2.UIView的常用属性

view.backgroundColor = [UIColor redColor];//设置视图控件的背景颜色
    view.tag = 1001;//设置视图控件的标识,在其他方法中可以通过tag标识来获取到对应的视图控件
    view.alpha = 0.6;//设置视图控件的透明度0为全透明1为不透明
    view.hidden = NO;//设置视图控件是否隐藏NO不隐藏,YES隐藏

3.UIView的常用方法、

//创建两个新的视图控件添加到当前视图窗口上
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [self.view addSubview:view];
    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
    [self.view addSubview:view1];
    [view removeFromSuperview];//视图移除方法(将视图控件从父视图上移除)
    [self.view bringSubviewToFront:view];//将view视图放置到当前视图窗口的最上层
    [self.view sendSubviewToBack:view];//将view视图放置到当前视图窗口的最下层
    [self.view insertSubview:view atIndex:0];//将view视图按照标识添加到当前视图窗口的指定标识位置,
    [self.view insertSubview:view1 aboveSubview:view];//将view1视图移动到view上方
    [self.view insertSubview:view1 belowSubview:view];//将view1视图移动到view下方

UIView作为最基础的实体控件,其根本作用是用来承载其余控件,大多用做自定义视图空间的背景视图,所以其操作方法并不是很多,大多操作都是视图层级的操作,后期动画视图中会再次用到UIView的操作,今天UIView的基本操作就到这里,更多进阶操作后续会有专门的文章来展示.

下篇文章我们要讲述的是文字视图控件UILabel的使用,也包含基本的自定义视图的操作.

喜欢的点个赞在走哈.

标签:控件,self,iOS,视图,100,view,UIView
From: https://blog.51cto.com/u_11806040/6662371

相关文章

  • iOS UITableViewCell侧滑抖动
    问题工程代码中cell在侧滑删除时,cell会抖动。在只用masonry代码中,cell会偏移。加上以下代码,cell会消失。letlabel=UILabel()label.isHidden=truelabel.sizeToFit()label.frame=CGRectMake(15,17,label.frame.width,label.frame.height)原因暂未知,先做记录......
  • aardio日期控件
    有两种方式完成日期控件,第一种是一个文本框edit+一个日期控件datetimepick,另一种是只有一个日期控件datetimepick方式一:文本框edit+日期控件datetimepick运行前效果:运行之后效果如下:个人觉得运行之后样式不好看,不推荐。原理:(1)、给文本框设置初始值vartm=time.now();t......
  • C#自定义checkBox开关按钮控件,设计漂亮美观的UI按钮
    第一步:先准备开关按钮要使用到的背景图片,一张是开启的,一张是关闭的,如下图: 一共有6种款式,大家也可以全部加进去    然后将这些图片作为资源文件添加到项目中,如下图: 第二步、新建用户控件,命名为:ButtonCheck.cs ButtonCheck.cs代码如下:///<su......
  • 转载:用pageOffice控件实现 office word文档 编辑Word加水印的功能
    OA办公中,业务需要多人编辑word文档,需要加文字水印的功能。怎么实现word文档的编辑加文字水印呢?2实现方法通过pageOffice实现简单的在线打开编辑word时,通过设置doc.getWaterMark().setText("PageOffice开发平台");属性,给Word文档添加文字水印。就可以实现编辑word中增加水......
  • 十一、控件学习
    1.QWidget主窗口控件1.1是所有用户界面对象的基类,即直接或间接的继承于该类。1.2常用于做顶层小部件或子小部件。1.3示例 2.QPushButton按钮控件2.1常用信号clicked(boolchecked):点击信号pressed():按下信号released():释放信号to......
  • IDEA:AXIOS使用网页报错net::ERR_CONNECTION_REFUSED
     之前使用的是下载的文件,一直是报错的状态,页面加载不进来 之后进官网选择在线的之后可用。......
  • Java实现浏览器端大文件分片上传控件
    ​ 核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。* 如何分片;* 如何合成一个文件;* 中断了从哪个分片开始。如何分,利用强大的js库,来减轻我们的工作,市场上已经能有关于大文件分块......
  • ios系统微信浏览器打开H5,调用接口status = 0失败的问题?
    最近写了一个很简单的小项目,以为不会有什么问题,今天突然说出问题了,说ios用户打开没有请求到数据。经测试,安卓,pc,都没有问题,只有ios出问题了。因为这次的涉及到时间,我以为ios时间处理上出问题了,仔细看了看,并不是,于是开启了漫长的寻找bug的过程。使用vConsole查看接口请求情况,发现......
  • 认识soui4js(第5篇):使用扩展控件
    无论内置控件多么丰富,也不可能满足用户所有需求。总有时候用户需要自己扩展控件。soui4js推荐使用C++来扩展控件,然后通过实现一个js模块来提供js使用。扩展控件通常涉及到图形上下文的频繁交互,如果使用js来实现,效率上会大打折扣。使用C++,没了C++和js的相互调用。使用起来就和C++......
  • 记ios的input框获取焦点之后界面放大问题
    在移动端开发项目中,发现页面在使用iPhone访问的时候,点击input和textarea等文本输入框聚焦focus()时,页面会整体放大,而且失去焦点之后页面不能返回原来的样子。检查了下功能上没有什么大问题,但是页面会整体放大,而且失去焦点之后页面不能返回原来的样子。对于用户体验不是很......