UIView.frame的骗局】的更多相关文章

如果你刚刚开始接触IOS编程, 刚刚接触UIKit, 肯定会被 frame, bounds, center, layer.anchorPoint, layer.position 这些乱七八糟得属性折腾得心烦意乱. 并且,聪明的你肯定早就发现,这些属性并不是独立的, 比如frame和bounds, 你改变一个必然会影响另一个, 这就更加大了理解难度. 我想通过这篇浅显的日志,和一个简单的Demo来表达出我对这些变量的理解. 难免有偏差之处, 欢迎拍砖. 但是我能保证的是这些理解方式是实用的. 我个…
http://stackoverflow.com/questions/5361369/uiview-frame-bounds-and-center Since the question I asked has been seen many times I will provide a detailed answer of it. Feel free to modify it if you want to add more correct content. First a recap on the…
最近一直在学 iOS 开发,所以专门创建了这样一个类别,将自己学习中的一些问题整理,记录下来.由于自己是初学者,所以所写的文章非常基础,写这个类别一是为了给自己留下存 档,二是为了给和我有同样问题的初学者留下一些学习的线索,三是希望在整理这些文章的过程中可以看到自己一点点的进步. 今天整理的问题是关于在布局方面, UIView 中的 frame, bounds, center 三个属性相关.三个属性都是用来将 view 定位在它的 Superview 上的,而三个又存在着一定的区别. 简介 fr…
本篇是是本人在博客园写的第一篇博客,前几天因为种种原因最终决定离开混了几年的csdn.希望在博客园有个新的开始 Foundation框架里面的frame是大家最熟悉不过的一个属性了,但是修改起来比较麻烦,他是CGRect类型的CGRect是结构体 结构体类型里面的某个属性如果想要修改是不允许单个修改的,必须像下面这样先取出,改一下再重新赋值回去,也就是大家常说的三部曲 如果结构体类型的东西也可以直接修改 那会有多爽?就像下面这样. 其实只要自己给UIView写个分类就好了 用这个分类来替代fra…
在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候.我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: someView.frame.x = 100: 这种方式是不允许的,但实际上我们更经常遇到的是frame的大部分元素值保持不变,只改变其中的一部分.相信这个烦恼困扰了不少人,于是我们不得不用以下两种方法去达到目的: 法1: CGRect frame = someView.frame; frame.x =100; fra…
参考:http://www.cnblogs.com/wengzilin/p/4359865.html 在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候.我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: 1 someView.frame.x = 100: 这种方式是不允许的,但实际上我们更经常遇到的是frame的大部分元素值保持不变,只改变其中的一部分.相信这个烦恼困扰了不少人,于是我们不得不用以下两种方法去达到目的:…
Swift - UIView的无损截图 效果 源码 // // UIView+ScreensShot.swift // Swift-Animations // // Created by YouXianMing on 16/9/5. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit extension UIView { /** Get the view's screen shot, this functi…
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusEnvironment> @available(iOS 2.0, *) public class UIView : UIResponder, NSCodi…
UIView转场动画 // MARK: - UIView动画-过度动画 var redView:UIView? var blueView:UIView? // enum UIViewAnimationTransition : Int { // // case None // case FlipFromLeft // case FlipFromRight // case CurlUp // case CurlDown // } //上翻页 @IBAction func excessiveAnima…
1. UIView 视图的渐变填充 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //渐变填充色的图形 let rect = CGRect(x: 30, y: 60, width: 200, height: 200) let gradientView = UIView(frame: rect) le…
1,下面是一个利用UIView来给页面上绘制灰色方块的例子,效果图如下:    代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 import UIKit   class ViewController: UIViewController {  …
1. Frame 每个视图都有一个frame属性,它是CGRect结构,它描述了视图所在的矩形在其父视图中的位置. (屏幕坐标系默认的原点在左上角,x轴向右伸展,y轴向下伸展) 设置frame通常通过视图的指定初始化器initWithFrame 下面来看个例子,该例子初始化了3个相互叠加的矩形区域 (Objective-C代码) UIView* v1 = [[UIView alloc] initWithFrame:CGRectMake(, , , )]; v1.backgroundColor =…
github: https://github.com/hellovoidworld/HVWWeibo A.cell的frame模型设计 1.需求 每个cell都有一个frame实例引用 frame模型用来存储数据模型.设置子控件位置尺寸   2.思路 frame模型同时包含了数据模型和子控件的frame实例引用 跟view设计一样,也是采用分层设计 每个view都有一个自己的frame模型   view层次:   每个view对应一个frame:   3.实现 (1)view   // // H…
为了便于日常开发效率,因此创建了一些小的工具类便于使用. 具体 code 如下: 声明: #import <UIKit/UIKit.h> @interface UIView (Frame) @property (nonatomic, assign) CGFloat x; @property (nonatomic, assign) CGFloat y; @property (nonatomic, assign) CGFloat centerX; @property (nonatomic, ass…
目录:[Swift]Xcode实际操作 本文将演示在视图控制器的根视图里添加两个视图对象. import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //初始化一个举行区域对象, //它在屏幕上定义了一个…
目录:[Swift]Xcode实际操作 本文将演示创建三个视图对象,其中第二个视图是第三个视图的父视图. 现在开始编写代码,实现这项功能 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //创建…
目录:[Swift]Xcode实际操作 本文将实现视图的添加与删除,以及切换视图在父视图中的层次. import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //创建一个原点在(30,50),尺寸为(20…
目录:[Swift]Xcode实际操作 本文将演示创建一个具有渐变填充色的图形 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //初始化一个原点在(10,80),尺寸为(300,300)的矩形…
#前言 APP页面优化对小编来说一直是难题,最近一直在不断的学习和总结 ,发现APP页面优化说到底离不开view的绘制和渲染机制.网上有很多精彩的博客,小编借鉴之前N多大牛研究成果,同时结合自己遇到的一些问题,整理了这篇博客. 尝试和大家一起探讨以下问题: view绘制渲染机制和runloop什么关系? 所谓的列表卡顿,到底是什么原因引发的? 我们经常在drawrect方法里绘制代码,但该方法是谁调用的 何时调用的? drawrect方法内为何第一行代码往往要获取图形的上下文? layer的代理…
Swift 中添加的UIView都是有层级的. 我们先添加三个看一看 let view1=UIView(frame: CGRectMake(10, 50, 200, 200)) let view2=UIView(frame: CGRectMake(60, 100, 200, 200)) let view3=UIView(frame: CGRectMake(110, 150, 200, 200)) view1.backgroundColor=UIColor.redColor() view2.bac…
UIView 有一个名叫 layer ,类型为 CALayer 的对象属性,它们的行为很相似,主要区别在于:CALayer 继承自 NSObject ,不能够响应事件. 这是因为 UIView 除了负责响应事件 ( 继承自 UIReponder ) 外,它还是一个对 CALayer 的底层封装.可以说,它们的相似行为都依赖于 CALayer 的实现,UIView 只不过是封装了它的高级接口而已. 那 CALayer 是什么呢? CALayer(图层) 文档对它定义是:管理基于图像内容的对象,允许…
1.创建窗口: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // 1.创建窗口 window = UIWindow(frame: UIScreen.mainScreen().bounds) window?.backgroundColor = UIColor.whiteColor() window…
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用Swift进行iOS开发还是不够的.在这篇文章中将继续介绍一些Swift开发中一些不常关注但是又必备的知识点,以便对Swift有进一步的了解. 访问控制 Swift命名空间 Swift和ObjC互相调用 Swift和ObjC映射关系 Swift调用ObjC ObjC调用Swift 扩展-Swift调用C 反射…
写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的回答, 而唯一几个比较接近答案的,说要 self.tableView.reloadData(),也没有贴上代码,说要放在哪个函数内, 都犹抱琵琶半遮面,让初学者自己采坑,于是郁闷了一下午,刚刚回到家,试想想,要不试试英文网,毕竟Swift就是人家老外的, 说不定老外会告诉你,怎么取得数据并绑定Tab…
一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))//FIXME:改变viewsframe views.backgroundColor = UIColor.yellow view.addSubview(views) //MARK: 创建一个按钮 let Button2 = UIButton(type: .contactAdd) Button2.bac…
1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDelegate,UIWebViewDelegate{ @IBOutlet weak var webView: UIWebView! //刷新控件view private var header:UIView! //下拉到50时松开刷新 private let pullHeight:CGFloat=50 //…
这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互. Index 演示项目 屏幕显示图像的原理 卡顿产生的原因和解决方案 CPU 资源消耗原因和解决方案 GPU 资源消耗原因和解决方案 AsyncDisplayKit ASDK 的由来 ASDK 的资料 ASDK 的基本原理 ASDK 的图层预合成 ASDK 异步并发操作 Runloop 任务分发 微博 Demo 性能优化技巧 预排版 预渲染 异步绘制…
照片 现在人们的生活越来越丰富了,很多美好的瞬间都定格在一张张色彩绚丽的照片上,或许把照片珍藏在相册里,或许通过社交软件分享给亲朋好友.那社交软件上的照片是以什么形式展现的呢?那么接下来就要说到九宫格这种形式了. 例图 照片是加载一个UIView上的,直接上代码了. YJYComposePhotosView.h文件 #import <UIKit/UIKit.h> @interface YJYComposePhotosView : UIView @property (nonatomic, str…
ToorBar的定制 在诸如社区类的app里面,很多都涉及到用户发布消息,如现今最流行的新浪微博,每条信息底部都会有个工具条,正如下图所示,有转发.评论和点赞三个按钮的工具条. 结构 1.作为一个独立存在的toolBar,必须要有个View作为载体,这里选择用UIImageView: 2.toolBar有三个可以点击的按钮,所以就要创建三个button. 下面直接上代码了! YJYStatusToolBar.h文件 #import <UIKit/UIKit.h> @class YJYStatu…
1.// 重新绘制cell边框 func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { let cornerRadius: CGFloat = 10 cell.backgroundColor = UIColor.clearColor() let layer = CAShapeLayer() let pathRe…