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

View编程指南(三)

要搜索带tag的view,请使用UIView的viewWithTag:方法。 此方法执行接收器及其subview的深度优先搜索。 它不搜索superview或view层次结构的其他部分。...当subview添加到其父项时,subview的当前frame矩形表示它在superview内的初始位置。frame位于其superview的可见边界之外的subview在默认情况下不会被剪切。...如果您希望将subview剪裁到superview的边界,则必须明确地将superview的clipsToBounds属性设置为YES。...如果您将nil指定为任何方法的参考view,则将转换到包含view的window的坐标系并从该view的坐标系转换。 除了UIView转换方法之外,UIWindow类还定义了几种转换方法。...动画块是启动view相关更改的另一个常见位置。内置到UIView类中的动画支持可以轻松地将更改设置为查看属性。

1.8K30

View编程指南

每个View都有一个对应的layer对象,可以通过该view的layer属性访问。 (因为bar按钮项不是View,所以不能直接访问它的图层。)...View的层次结构和管理子View 除了提供自己的内容之外,view还可以充当其他view的容器。当一个view包含另一个view时,两个view之间会创建一个父子关系。...UIView类的许多属性都是可以动画的,也就是说,存在从一个值到另一个值的动画的半自动支持。要为其中一个动画属性执行动画,您只需执行以下操作: 告诉UIKit你想要执行一个动画。 更改属性的值。...除了屏幕坐标系之外,window和view还定义了自己的局部坐标系,使您可以指定相对于window或view原点的坐标,而不是相对于屏幕。...换句话说,发生在superview bounds矩形之外的view的一部分中的触摸事件不会被传送到该view。 坐标系统转换 坐标系转换提供了一种快速方便地更改view(或其内容)的方法。

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

    IOS开发系列——UIView专题之五:常用开发技巧篇

    :返回nil; •若返回YES,则向当前视图的所有子视图(subviews)发送hitTest:withEvent:消息,所有子视图的遍历顺序是从top到bottom,即从subviews数组的末尾向前遍历...如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别...根据文档描述,如果View有view controller,则通过nextResponder方法返回,如果没有则返回superview。...If there is noview controller, the method will return the superview 相关代码如下:遍历该View的树形结构,获取到其所属的ViewController...•- (UIViewController*)viewController { •for(UIView* next = [self superview]; next; next = next.superview

    1.2K20

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

    如果这个点位于接收者之外就返回nil 讨论         这个方法贯穿视图的层次发送pointInside:withEvent:消息到每一个子视图用来决定那个子视图需要接收触摸事件。...insertSubview:belowSubview:     插入视图到显示链的底层 - (void)insertSubview:(UIView *)view belowSubview:(UIView...• 旋转:即任何应用到视图上的仿射变换(transform)。         UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。...还支持Core Animation作为其QuartzCore架构的一部分,CA API为iPhone应用程序提供了高度灵活的动画解决方案。...如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别

    70530

    iOS开发-RAC+MVVM练手项目 图床App写在前面准备工作界面设计首页历史关于后记

    米米图床 AppStore 跟盆友一起搞的小博客有兴趣的可以看看,此文也会同步过去,也包含一些服务器相关的内容。...个人站博客 本文主要代码使用 RAC+MVVM 以及其他一些第三方库,做的比较急,虽说是MVVM+RAC但使用的还是比较拙劣的,不喜勿喷。...上传完成后可以选择copy的内容,顺便再加个分享 历史 :上传的历史记录,直接就使用iCloud来保存数据。同样有首页copy和分享功能 关于 :一些免责声明,例如严禁上传小黄图啦之类的。...UI 页面很简单吧~ 首页 首页就是个上传图片到后台,偷了个懒,没有使用RAC+MVVM,直接一堆写在VC里了 ?...; }; UIView *uploadView = [UIView new]; [self.view addSubview:uploadView]; [uploadView

    1K20

    自定义一个浮层弹窗视图

    CoreAnimation是iOS中实现动画的框架,整个iOS中的动画(比如UIView中封装的动画、UIViewController切换时的转场动画、UITableViewCell移除增添时的动画等,..., fromView removed from its superview + (void)performSystemAnimation:(UISystemAnimation)animation onViews...实现一个自定义弹窗视图 我们平时在开发的时候,经常会遇到这样的需求:在页面中弹出一个自定义视图,除了弹出的自定义视图之外,页面的其他位置都置灰态。比如下图这样: ?...:self]; if (CGRectContainsPoint(self.customView.frame, tapPoint)) { return;//点击点在自定义视图范围之外才会使提示视图消失...通过UIView的系统封装好的动画,我们可以实现日常开发中80%的动画需求,剩下的一些较复杂的动画,可以使用CoreAnimation来自定义。

    1.4K30

    IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】

    可以看到superview已经按照我们预期居中并且设置成了适当的大小 那么先看看这几行代码 //从此以后基本可以抛弃CGRectMake了 UIView *sv = [UIView new]; //...在做autoLayout之前 一定要先将view添加到superview上 否则会报错 [self.view addSubview:sv]; //mas_makeConstraints就是Masonry...所支持的类型除了NSNumber支持的那些数值类型之外就只支持CGPoint CGSize UIEdgeInsets 介绍完这几个问题我们就继续往下了 PS:刚才定义的sv会成为我们接下来所有sample...的superView 1.1.2 [初级] 让一个view略小于其superView(边距为10) UIView *sv1 = [UIView new]; [sv1 showPlaceHolder]...UIView *sv11 = [UIView new]; UIView *sv12 = [UIView new]; UIView *sv13 = [UIView new]; UIView *sv21

    79510

    iOS自动布局——Masonry详解

    image.png 所以,软件界面开发的核心点即是:如何减少UI设计稿的建模难度和减少建模转化到代码的实现难度 最初iOS提供了平面直角坐标系的方式,来解决布局问题,即所谓的手动布局。...效果图 我们注意到,自动布局其实工作分两步: 创建视图的约束 将约束添加到合适的位置 约束关系从上面的描述中,已经非常清晰了。那么如何寻找约束添加的合适位置呢? ?...---- 到这里,我们只是解决了如何减少UI设计稿的建模难度的问题, 显然,减少建模转化到代码的实现难度这个效果没能达成。...关于如何解决减少建模转化到代码的实现难度的问题, 开源库 上面的代码,我们可以看到,虽然自动布局已经比手动布局优雅不少了,但它依然行数较多。...,代码变得非常简练易读,需要行数略有增加,但是计算过程减少了,我们能更加关注于多个UIView间的位置关系,这与当前的UI设计语言是契合的。

    1K20
    领券