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

iOS 页面渲染 - UIView & CALayer

我们可以通过重写属性,来让 UIView 使用不同的 CALayer 来显示。...: class MyView: UIView { override class var layerClass: AnyClass { /// 使用GL来进行绘制...CALayer种类 我们通常见到的 layer 都是依附于一个 UIView,但是也有一些单独的 layer 不需要附加到 UIView 上,就可以直接在屏幕上显示内容, AVCaptureVideoPreviewLayer...使用图片 这种方式就是我们平时常见的 UIImageView 显示的形式,我们通过 CALayer 的 contents 属性来配置图片。然而,contents 属性的类型为 id。...参考及相关链接 UIView中frame属性的内部实现[4] View-Layer 协作[5] iOS界面渲染与优化(二) - UIView与渲染[6] 参考资料 [1]核心动画编程指南: https:

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

setNeedsDisplay看我就懂!

一、着手 我定义了一个UIView的子类,用于演示使用setNeedsDisplay,这个CircleView子类会在draw(_ rect: CGRect)方法内简单绘制一个圆,它有一个颜色属性,这是我们将要设置用来改变圆的颜色...二、配置属性、组件 应用程序的下一部分是在故事中配置一些UIKit组件,其中一个是CircleView。...valueFloat/255.0, blue:valueFloat/255.0, alpha:1.0) circleView.color = color } 在viewDidLoad中,根据故事中配置的步进器的默认值...一般来说,使用框架控件,当您设置属性显示标签或值)时,您将会使用该属性,这样会导致重新绘制控件,因为系统会实现对控件drawRect方法的调用。...而我们自定义了自己的UIView子类,所以我们需要处理影响显示的控件的更新。在改变颜色的情况下,当然需要我们自己控制重新绘制。

1.2K60

动画分析步骤“三步曲”

第3行重写viewDidLoad方法,表明应用启动之后首先通过调用viewDidload方法加载各种UI组键。...4 UIView视图中常见动画的属性分析 我们在第2节和第3节主要依靠UIView下的frame属性来实现登录按钮从左到右的进入效果。那么UIView下的其他属性是不是也可以有类似的效果呢?...1.位置属性:frame bounds center frame、bounds、center都是描述UIView的位置信息,不同的是frame可以对x坐标、y坐标、width、height四个属性进行操作...通过对frame中数据类型的追本溯源,可以得到以下结论:CGRect分别对应x坐标、y坐标、width、height四个属性。这四个属性表明当前UI在它的父控件上的位置,self.view上。...对于bounds属性使用最多的还是width、height属性,center则经常使用x、y坐标属性

86010

六天完成一个简单iOS App - 第一天

项目图片获取方式 图片的获取非常简单,我们只要将iTunes中的项目拖到桌面,然后改后缀名为zip,然后在解压就可以了,更简单暴力的可以使用iOS-Images-Extractor运行后直接将项目拖进去...比较麻烦 方法二:自定义UINavigationController 重写pushViewController方法 重写pushViewController方法,判断NavigationController...关于frame的分类 当我们在设置控件的宽高以及位置的时候需要设置self.frame.size.height;代码很长,那么我们可以写一个UIView的分类,直接就可以通过self.height来设置其高度...四.疑惑 分类中能不能添加属性呢?之前uiview关于frame的分类不就是给分类添加了许多属性吗? 注意: 1....分类原则是不可以添加属性,只能添加方法,我们之前给 UIView增加了一些属性,而且为其实现了相应的 getter和 setter方法。

1.1K50

iOS中动态更新补丁策略JSPatch运用基础一

());                     var label = UILabel.alloc().initWithFrame({x:0, y:0, width:100, height:100})...调用类方法:通过类名打点的方式来调用类方法,格式类似如下,括号内为参数传递: UIColor.redColor() 调用实例方法:通过对象打点的方式调用类的实例方法,格式如下,括号内为参数传递: view.addSubview...重写或者添加类的方法: 在JavaScript中使用defineClass来定义和修改类中的方法,其编写格式如下所示: /* classDeclaration:要添加或者重写方法的类名 字符串  如果此类不存在... 则会创建新的类 instanceMethods:要添加或者重写的实例方法 {} classMethods:要添加或者重写的类方法 {} */ defineClass(classDeclaration,...,用于在方法间参数传递,使用set_Prop_forKey()来添加属性,使用getProp()来获取属性,注意,JSPatch添加的属性不能使用Objective-C的setter与getter方法访问

86620

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

Tangram的中文即七巧的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题。他的同胞框架:MyLayout是一套用objective-C实现的界面布局框架。...二者的主体思想相同,实现原理则是通过扩展UIView属性,以及重载layoutSubviews方法来完成界面布局,只不过在一些语法和属性设置上略有一些差异。...唯一引起争议是可视化编程和纯代码编程方式之争,这种争议也体现在iOS应用的开发身上,那就是用XIB和SB以及纯代码编写界面的好坏争议。...同时我们对UIView扩展出了两个属性tg_width, tg_height分别用来表示视图的布局宽度和布局高度。他其实是对原生的视图bounds属性中的size部分进行了扩充和延展。...视图的坐标转换 iOS中UIView提供了一个属性center,center属性的意义就是定义视图内中心点这个方位在父视图坐标系中的坐标值。

2.1K30

玩转iOS转场动画 原

动画执行的另一种方式:https://my.oschina.net/u/2340880/blog/484538 iOS动画开发之三——UIView的转场切换:https://my.oschina.net.../u/2340880/blog/484669 iOS动画开发之四——核心动画编程(CoreAnimation):https://my.oschina.net/u/2340880/blog/484793...动画开发之五——炫酷的粒子效果:https://my.oschina.net/u/2340880/blog/485095 iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程...其实,系统提供了4种转场动画供开发者选择,通过设置将要弹出的UIViewController实例的如下属性: @property(nonatomic,assign) UIModalTransitionStyle...UIViewControllerInteractiveTransitioning协议,其实系统也为我们提供一个类:UIPercentDrivenInteractiveTransition类,我们可以直接调用这个类的如下3个函数而不需要我们自己重写

1.3K50

【iOS7一些总结】9、与列表显示(在):列表显示UITableView

定义例如以下: @property(nonatomic, retain) UIView *tableHeaderView; @property(nonatomic, retain) UIView *tableFooterView...在新生成的ViewController.m文件里重写loadView方法,新建一个UITableView视图。 (别忘了把alloc的视图在dealloc函数中释放。)...[UIScreen mainScreen].bounds.size.height; UIView *backgroundView = [[UIView alloc] initWithFrame...托付方法一般用于实现个性化处理表视图的基本样式(单元格的高度等)以及捕捉单元格选中的响应。数据源方法用于完毕表中的数据。指定单元格数。以及创建每个单元格。 要实现代理和数据源方法。...我们在视图控制器头文件里声明一个NSArray *model(retain属性),并在viewDidLoad中将[UIFont familyNames]赋给这个属性

1.9K40

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

UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。         ...转:UIView动画更具体讲解;http://wsqwsq000.iteye.com/blog/1189183 3.3 创建UIView动画(块)——(指过渡效果的动画) 3.3.1 一.基本方式:使用...把这两个类方法发送给UIView而不是发送给单独的视图。在这两个调用之间的可定义动画的展现方式并更新视图。...则事件会发送给nextResponder去处理,通常是superView,有关nextResponder的事件传递过程,官方给出了一张很形象的图,如下所示:         PS:View处理事件的方式有手势或者重写...6.1.3 内容自适应属性UIViewContentMode         UIImageView 的contentMode这个属性是用来设置图片的显示方式居中、居右,是否缩放等,有以下几个常量可供设定

41730

Xcode:处理故事的更好方式 享受Interface Builder的提示和技巧

使用大小类变得更加直观,缩放故事的能力非常方便,Interface Builder中的完整预览功能非常棒。...这正是Interface Builder的创建方式。 但对开发人员而言,这可能会导致多个问题。 源代码控制:故事合并冲突很难解决,因此简单地在单独的故事中工作将使您的团队生活更轻松。...故事文件变得沉重且难以导航。有多少次您在错误的ViewController中单击一次无意中更改了约束?...1.使用Xcode 7中引入的故事引用 2.在代码中连接故事。 你可以阅读更多关于第一种方式在这里。 我将介绍第二种方式,因为它仍然常用于复杂的项目。...否则,当您尝试创建对此故事的引用时,应用程序将崩溃。

1.4K30

设计模式之创建型模式

模式是一项管理复杂度的技术,几乎所有模式都遵循两个原则: 针对接口编程,而不是实现。 多用组合,少用继承。 很多模式看上去很类似,这是因为实现各种模式的方式一般就是继承和组合。...《设计模式》一书的副标题是“可复用面向对象软件的基础”,所以显然这23个设计模式是用于面向对象软件设计的,而众所周知,最适合面向对象这种范式的领域其实是 GUI 编程领域(这也是《设计模式》中大部分应用实例都是一些...抽象方法定义一个用于创建对象的接口,子类重写创建方法,被创建的产品会有一个抽象接口,所以使用者并不知道具体得到的是什么产品。...而且不止是显示的文字,连同背景色、位置、大小等等属性都会不同。...createButton() -> UIButton { return UIButton() } } 这样我们要创建 HelloPageView 和 GoodbyepageView 的时候只要重写工厂方法就好了

63740

UIViewController生命周期

一、视图控制器 UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会加载或创建它。...这需要我们在loadView 方法中,通过编程创建自己的视图层次,并且把把根视图赋值给UIViewController的view属性。...我们可以重写这个方法,对通过nib文件加载的view做一些其他的初始化工作。比如可以移除一些视图,修改约束,加载数据等。...上的layoutSubviews 改变transform属性时,当然frame也会变 处于key window的UIView才会调用(程序同一时间只有一个window为keyWindow,可以简单理解为显示在最前面的...从继承关系来看,UIWindow继承自UIView,所以UIWindow除了具有UIView的所有功能之外,还增加了一些特有的属性和方法,而我们最常用的方法,就是在App刚启动时,调用UIWindow的

1.8K10

Cocoa编程中视图控制器与视图类详解

iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。...视窗UIWindow虽然也是UIView,但不能用处理普通UIView方式来设置; 2....一切都是在被推入的UIViewController子类内部执行推入请求和相关导航栏的定制(:右键按钮)。...注意:对于导航栏定制,对定制实际标题的最简单方式时使用子视图控制器而不是导航项的title属性: C代码   self.title = @"Hello";   self.title = [[[NSBundle...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法中创建所有的视图,这是比较好的编程惯例。

5K50
领券