首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS UI控件了解一下

UIWindow widow是窗口,每个app都需要借助window将内容展现给用户看,在iOS中,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象; 创建window示例代码...下面我们将引入UIView; 3. UIView view(视图)代表屏幕上的一个矩形区域。...iOS中用UIView来表示视图,App中能看到的元素,都是UIView及其子类,通俗的说各种UI控件都属于view,不同的控件代表不同种类的view。iOS中所有能看到的内容都是view或其子类。...创建view的步骤如下: ①开辟空间并初始化视图(初始化时,给出视图位置和大小) ②对视图做一些设置(比如:背景颜色) ③将视图添加到window上进行显示 ④释放视图对象 视图创建代码: UIView...origin也是一个结构体,包含2部分内容:x和y(ios坐标系以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向);size同样是一个结构体,包含2部分内容:width和height

2.6K20

深入探究frame和bounds的区别以及setbounds使用

其实本地坐标系统的关键就是要知道的它的原点(0,0)在什么位置(这个位置又是相对于上层的view的本地坐标系统而言的,最上层view就是 window它的本地坐标系统原点就是屏幕的左上角了)。...通过修改view的bounds属性可以修改本地坐标系统的原点位置。 所以,bounds的有这么一个特点: 它是参考自己坐标系,它可以修改自己坐标系的原点位置,进而影响到“子view”的显示位置。...4 demo论证 UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 200, 200)]; [view1 setBounds...它可以修改自己坐标系的原点位置,进而影想到“子view”的显示位置。这个作用更像是移动原点的意思。 2. bounds,它可以改变的frame。如果bounds比frame大。...从网上找到一个案例:可以将下图中cell拉伸: ? ?

1.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    View编程指南

    View管理应用程序可见内容 view是UIView类(或其子类之一)的一个实例对象,并在应用程序window中管理矩形区域。view负责绘制内容,处理多点触控事件以及管理任何子view的布局。...除了屏幕坐标系之外,window和view还定义了自己的局部坐标系,使您可以指定相对于window或view原点的坐标,而不是相对于屏幕。...重要提示:某些iOS技术定义默认坐标系,其原点和方向与UIKit使用的坐标系不同。...bounds矩形在View的本地坐标系中表示。此矩形的默认原点是(0,0),其大小与frame矩形的大小相匹配。您在此矩形内绘制的任何东西都是view可见内容的一部分。...在图中,图像view的左上角位于其superivew坐标系中的点(40,40),矩形的大小是240×380点。对于bounds矩形,原点为(0,0),矩形的大小为240乘380点。

    2.3K20

    iOS-控件响应用户控制事件之事件处理

    *)view; 返回值表示触摸在view上的位置 这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0)) 调用时传入的view参数为nil的话,返回的是触摸点在UIWindow...从后往前遍历子控件,重复前面的两个步骤 如果没有符合条件的子控件,那么就自己最适合处理 原理 // point:是方法调用者坐标系上的触摸点的位置 - (UIView *)hitTest:(CGPoint...*childView = self.subviews[i]; // 转换成子控件坐标系上点 CGPoint childP = [self convertPoint:...那么父控件就是上一个响应者 响应者链的事件传递过程 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图 在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给...window对象进行处理 如果window对象也不处理,则其将事件或消息传递给UIApplication对象 如果UIApplication也不能处理该事件或消息,则将其丢弃 响应者链条示意图 响应者链条

    97670

    Threejs入门之二十二:Threejs中的屏幕坐标转标准设备坐标

    标准坐标系我们之所以要进行上面的转换,这是因为在Three.js中Canvas画布具有一个标准设备坐标系,该坐标系的坐标原点在canvas画布的中间位置,x轴水平向右,y轴竖直向上。...标准设备坐标系的坐标值不是绝对值,是相对值,其范围是[-1,1]区间,也就是说canvas画布上任何一个位置的坐标,如果用标准设备坐标系来表示,那么坐标的值都是在-1到1之间的。...坐标系 坐标原点:用户显示器屏幕左上角。...2 page坐标系 坐标原点:整个页面的左上角(整个页面的意思就是你整个网页的全部,按照整个html文档的长度和宽度来计算)。...client坐标的最大范围是 (window.innerWidth - 垂直滚动条宽度, window.innerHeight - 水平滚动条高度)。

    2.3K10

    iOS-UITouch事件处理详解1. iOS中的事件基本介绍2.UITouch3.UIEvent4. 事件的产生和传递5. 通过UITouch方法监听View的触摸事件的缺点

    UITouch的常用方法 - (CGPoint)locationInView:(UIView *)view; //返回值表示触摸在view上的位置 //这里返回的位置是针对view的坐标系的(以view...的左上角为原点(0, 0)) //调用时传入的view参数为nil的话,返回的是触摸点在UIWindow的位置 - (CGPoint)previousLocationInView:(UIView *)...// 用来寻找最合适的View处理事件,只要一个事件传递给一个控件就会调用控件的hitTest方法,参数point 表示方法调用者坐标系上的点 - (nullable UIView *)hitTest:...接收触摸事件需要设置其 userInteractionEnabled = YES 。...,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理 如果window对象也不处理,则其将事件或消息传递给UIApplication对象 如果UIApplication也不能处理该事件或消息

    1.7K60

    【IOS开发基础系列】UIView专题

    [self.window addsubview: vc.view];     (2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理...window的属性定义为strong,就是为了让其不销毁。         一个应用程序只能有一个主窗口,程序中创建了两个Window,那么谁是主窗口?后面的窗口能覆盖前面的窗口。         ...如果是图是nil,那么这个方法将尝试转换基于窗口的坐标系。否则视图和那个接收者必须属于同一个UIWindow对象。...UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。         ...转:UIView动画更具体讲解;http://wsqwsq000.iteye.com/blog/1189183 3.3 创建UIView动画(块)——(指过渡效果的动画) 3.3.1 一.基本方式:使用

    70830

    史上最详细的iOS之事件的传递和响应机制-原理篇

    *)view; // 返回值表示触摸在view上的位置 // 这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0)) // 调用时传入的view参数为nil的话,返回的是触摸点在...比如,设置其userInteractionEnabled = NO;那么传递下来的事件就会由该view的父控件处理。...*childView = self.subviews[i]; // 坐标系的转换,把窗口上的点转换为子控件上的点 // 把自己控件上的点转换成子控件上的点 CGPoint...那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器的view,那么父视图就是当前view的上一个响应者,事件就传递给它的父视图 2>在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给...window对象进行处理 3>如果window对象也不处理,则其将事件或消息传递给UIApplication对象 4>如果UIApplication也不能处理该事件或消息,则将其丢弃 事件处理的整个流程总结

    11.4K70

    iOS界面布局的核心以及TangramKit介绍

    而这个坐标原点在不同的系统中有区别:iOS系统采用左手坐标系,原点都是在左上角,并且规定y轴在原点以下是正坐标轴,而原点以上是负坐标轴,而x轴则在原点右边是正坐标轴,原点左边是负坐标轴。...OSX系统则采用右手坐标系,原点在左下角,并且规定y轴在原点以上是正坐标轴,而在原点以下是负坐标轴,而x轴则在原点右边是正坐标轴,原点左边是负坐标轴。...第一种以屏幕坐标系作为参照来确定的位置称为绝对位置,也就是以屏幕的左上角作为原点,每个视图的位置都是距离屏幕左上角原点的一个偏移值。...我们知道在左手坐标系里面,一个视图内的左上角方位的坐标值就是原点的坐标值,默认情况下原点的坐标值是(0,0)。但是这个定义不是一成不变的,也就是说原点的坐标值不一定是(0,0)。...average:他表示视图的尺寸将和其兄弟视图一起来均分父视图的尺寸,这样所有兄弟视图的尺寸都将相等。

    2.2K30

    UITableViewCell系列之(二)视觉差滚动效果前言

    控制器不能使UITableViewController,只能是UIViewController的view上添加一个UITableView ---- 3. demo中涉及到了坐标系转换的问题,不了解坐标系转换的可以参考如下两个方法的使用...: // - (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view; // 把以A视图为坐标系的rect1转换为以B视图为坐标系的...CGRect rect2 = [A convertRect:rect1 toView:B]; // - (CGRect)convertRect:(CGRect)rect fromView:(nullable UIView...*)view; // 把以B视图为坐标系的frame1转换为以B视图为坐标系的frame2并返回frame2 CGRect frame2 = [A convertRect:frame1 fromView...]; 主要代码如下: 1. cell.m文件中 - (void)updateBackImageViewYForTableView:(UITableView *)tableView andView:(UIView

    6.1K30

    iOS 页面渲染 - UIView & CALayer

    今天我们来聊一聊 UIView 与 CALayer 的相关知识以及它们之间的关系,其实这部分内容要是引申出来会比较多,今天我们先收敛一下,先讲一些基本的东西,后面还会有系列文章对其进行扩展。...UIView 与 CALayer 概括 UIView 本身是不具备图像渲染能力的,拥有一个 layer 属性用来持有一个 CALayer 实例,我们平时操作的 UIView 的绝大部分绘图属性内部其实都是操作其拥有的...UIView 所持有的主 Layer(RootLayer) 实例,我们可以通过其来设置 UIView 没有封装的一些 layer 属性; layerClass 则返回 RootLayer 所使用的类,...frame:表示视图在父视图中显示出来的位置和大小,CGReact 类型,其显示位置是相对父视图坐标系而言的; bounds:表示视图相对于自身显示出来的位置与大小,CGReact 类型,其显示位置是相对自身视图坐标系而言的...顺便提一下,iOS 和 macOS 两个系统的参考坐标系不一致,对于 iOS 来说原点默认在视图的左上角位置,往右为 X 正方向,往下是 Y 正方向;而对于 macOS 来说原点默认是在视图的左下角位置

    1.9K20

    3D图形学线代基础

    示例图中 AB 向量和 CD 向量大小相等、方向相同,那么它们就是相等的;除了上述判断方法之外,还可以平移 AB 向量至坐标系原点,此时 AB 向量将和 CD 向量完全重合,因此它们是相等的,这也说明向量和位置无关...正交矩阵 对于某个矩阵 A,如果其转置换矩阵等于其逆矩阵,则称该矩阵 A 为正交矩阵: ? 已知某个矩阵为正交矩阵,那么就可以根据上述性质快速求出其逆矩阵;以旋转变换为例(旋转矩阵为正交矩阵): ?...由于旋转矩阵为正交矩阵,其逆矩阵等于其转置矩阵;根据转置矩阵的规律,可得: ? 最终求得视图矩阵如下: ? 投影矩阵 投影矩阵则会把相机坐标系中的场景转换到投影平面上,以透视投影为例: ?...最后还需要把平移到坐标系原点的立方体进行缩放,从而让其 x、y、z 范围为 [-1,1]: ?...图中右侧为屏幕坐标系,以屏幕左下角为原点,X 轴水平向右,Y 轴垂直向上;假设屏幕宽度为 width,高度为 height,从投影面坐标转换为屏幕坐标系,需要先进行缩放,然后再平移即可,变换矩阵如下:

    2.1K31

    6_机械臂运动学_刚体转动的描述

    实际上这个点的旋转变换Γ 就是前面我们介绍的旋转矩阵 ,即点(或向量)的旋转变换为 = 2平面上坐标的旋转变换 如果将坐标系{xoy}也以逆时针方向绕原点旋转θ角,会得到新的坐标系{x'oy'},如图所示...我们看到点的旋转矩阵和坐标系的同样旋转的旋转矩阵T不同,容易验证,它们互为转置矩阵.另外,也可以验证它们互为逆矩阵. 1.4.2 空间的旋转变换 1 方向余弦矩阵(Direction Cosine...2 三维空间旋转变换 三维空间的情况完全类似,如图所示,将空间中任意一点P(x,y,z)对应的向量oP(与原点o相连接得到)以逆时针方向绕某一个直线L(过原点)旋转θ角,得到向量oP’,即点P(x,y,...在开始的时候,如果将整个空间作为一个刚体绕直线ℓ旋转θ角,那么点P(x,y,z)当然变化到点P’(x’,y’,z’).而旧坐标系{oxyz}变换到新的坐标系{x’,y’,z’},旧坐标轴上的基本单位向量...、z’,关于坐标系{oxyz}的方向余弦分别是a1、b1、c1,a2、b2、c2,和a3、b3、c3, 那么坐标系轴的旋转变换为 2.

    14210

    UIView中frame属性的内部实现

    需要注意的是bounds属性中的origin部分描述的是视图内部坐标系中原点的位置,它影响着里面子视图的位置。...iOS和macOS两个系统的参考坐标系不一致,对于iOS来说原点默认在视图的左上角位置,而对于macOS来说原点默认是在视图的左下角位置。...因此上述视图中的几个属性的内部实现其实是委托给CALayer中的对应属性来实现的,其对应关系表如下: UIView CALayer frame frame center position bounds...锚点是一个相对坐标值,其左上角的位置是(0,0)而右下角的位置是(1,1)中心点的锚点值就是(0.5,0.5)了(对于macOS系统来说,因为坐标系的不同,(0,0)位置位于左下角,而(1,1)位置则位于右上角...//这时候frame的值将变为(50,50,100,100), 但是center的值还是(50,50)却不是表明视图的中心点位置了。

    1.5K30

    图形编辑器开发:以光标为中心缩放画布

    坐标系的原点在画布(canvas 元素)的左上角,x 轴向右,y 轴向下。 图形会被绘制到这个平面,理论上它的范围是可以 无限延展 的。(不过实际上我们会给一个上限,但这个值也非常大。...所以我们需要引入一个 “摄影机”:视图坐标系,只看部分的区域。 其实就是将原来真实的图形的坐标做一个线性计算转换。 首先是将特定区域 移动 到视口中,就像摄影机从原点移动我们想要观察的某个物体上。...scrollX, scrollY) { return { x: (x - scrollX) * zoom, y: (y - scrollY) * zoom }; } 至于反过来,场景坐标系转视图坐标...就是两个坐标系中距离的转换: 场景转视图,距离转换为 dist * zoom; 视图转场景,距离的转换是 dist / zoom,因为视口看到的图形都是缩放(乘以 zoom)后的结果,所以反过来就要除回去...场景坐标转视图坐标,首先需要将画布进行移动,让场景坐标的原点和视图坐标的原点对上(场景坐标移动 -viewport.x 和 -viewport.x),然后再进行缩放(乘以 zoom)。

    23710

    详解CALayer的anchorPoint和position

    然后再来看下面两张图,注意图中分iOS与MacOS,因为两者的坐标系不相同,iOS使用左手坐标系,坐标原点在左上角,MacOS使用右手坐标系,原点在左下角,我们看iOS部分即可。...图1 图2 像UIView有superView与subView的概念一样,CALayer也有superLayer与layer的概念,前面说到的白纸和图中的矩形可以理解为layer,书桌和图中矩形以外的坐标系可以理解成...如果各自以左上角为原点,则在图中有相对的两个坐标空间。 position 在图1中,anchorPoint有(0.5,0.5)和(0,0)两种情况,分别为矩形的中心点与原点。...根据代码测试,两者互不影响,受影响的只会是frame.origin,也就是layer坐标原点相对superLayer会有所改变。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.1K30
    领券