有时候,需要做出如下图所示的效果,这就需要用到视图的旋转了

1.首先将旋转的值由角度转换为弧度:

#define degreesToRadinas(x) (M_PI * (x)/180.0)

注:M_PI是ios内置的常量,值为:

3.14159265358979323846264338327950288

2.每一个视图都有一个transform属性,默认为:

CGAffineTransformIdentity

3.使一个视图旋转90度:

_display.transform= CGAffineTransformIdentity;//重置视图角度旋转为默认值

_display.transform= CGAffineTransformMakeRotation(degreesToRadinas(90));//旋转90度(将90度转换为弧度)

注:_display = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

示例代码

a、视图旋转

    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor yellowColor];
view.clipsToBounds = YES; view.transform = CGAffineTransformIdentity;
view.transform = CGAffineTransformMakeRotation(degreeToRadinas());
[self.view addSubview:view];
[view release];

b、视图中,label旋转

    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor yellowColor];
view.clipsToBounds = YES;
[self.view addSubview:view]; UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
label.text = @"倾斜";
label.backgroundColor = [UIColor greenColor];
label.transform = CGAffineTransformIdentity;
label.transform = CGAffineTransformMakeRotation(degreeToRadinas(-));
[view addSubview:label]; [label release];
[view release];

注:

clipsToBounds属性

取值:BOOL(YES/NO)

作用:决定了子视图的显示范围。具体的说,就是当取值为YES时,剪裁超出父视图范围的子视图部分;当取值为NO时,不剪裁子视图。默认值为NO。

ios 视图的旋转及应用的更多相关文章

  1. iOS 视图控制器转场详解

    iOS 视图控制器转场详解 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题 ...

  2. (转)ios限制控制器旋转

    iOS屏幕旋转控制 iOS屏幕旋转控制(iOS6之后)       iOS6之前,子控制器只要覆盖父类的shouldAutorotateToInterfaceOrientation:方法就能单独控制某 ...

  3. View Programming Guide for iOS ---- iOS 视图编程指南(五)---Animations

      Animations Animations provide fluid visual transitions between different states of your user inter ...

  4. View Programming Guide for iOS ---- iOS 视图编程指南(四)---Views

    Views Because view objects are the main way your application interacts with the user, they have many ...

  5. View Programming Guide for iOS ---- iOS 视图编程指南(二)---View and Window Architecture

    View and Window Architecture 视图和窗口架构 Views and windows present your application’s user interface and ...

  6. iOS实现屏幕旋转

    iOS实现屏幕旋转有两种方式 1. 应用本身支持 2. 手动旋转UIView (这种方式我没找到旋转 系统控件的方法 如:键盘.导航.UIAlertView) 如果你只是要把竖屏的播放器,做成支持横屏 ...

  7. iOS视图控制器的生命周期

    今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过 ...

  8. iOS视图控制对象生命周期

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...

  9. IOS 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...

随机推荐

  1. 洛谷P1822 魔法指纹 【分块打表】

    题目 对于任意一个至少两位的正整数n,按如下方式定义magic(n):将n按十进制顺序写下来,依次对相邻两个数写下差的绝对值.这样,得到了一个新数,去掉前导0,则定义为magic(n).若n为一位数, ...

  2. 【转】Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

  3. 解决 unity 用 vs通过wifi 真机联调 一直连接不上

    平时 在公司网络太差,要通过wifi 用vs真机联调时,vs一直连不上设备,很是蛋疼...用下面官方给出的方法可以解决 Attaching MonoDevelop Debugger To An And ...

  4. ThickBox弹出框的使用方法

    原文发布时间为:2009-08-22 -- 来源于本人的百度文章 [由搬家工具导入] 请访问:http://www.blueidea.com/articleimg/2007/12/5182/tickb ...

  5. js3:数据类型,数组,String各个属性,以及字符串表达式用eval计算

    原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <title>js</title> & ...

  6. Zookeeper如何从官网下载和安装

    打开百度搜索,输入Zookeeper关键词,一般第一条搜索记录就是apache官网下载的地址 进入apache官网,由于是国外的网站,里面内容都是英文的,可以大概看下Zookeeper的描述和介绍,在 ...

  7. github的多环境应用介绍

    ssh认证中公钥如同家里大门,私钥就是钥匙,一个大门可以有多把钥匙,大门可以随便展示,钥匙却不能,必须给那些需要的人.其中,公钥的默认名字是id_rsa.pub,私钥的默认名字是id_rsa,它的权限 ...

  8. C#Json转Xml格式数据的方法

    第一种方法 string Xml = "在这里写Json字符串"; XmlDictionaryReader reader = JsonReaderWriterFactory.Cre ...

  9. (二)docker的部署安装,配置,基础命令

    一.docker 的安装部署 这里不过多介绍,下面这两个linux发型版 安装可以参考 ubuntu的 docker-ce安装 centos7的 docker-ce安装 二.docker配置文件 重要 ...

  10. Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    先放效果截图 项目中需要有个Dialog全选对话框,点击全选全部选中,取消全选全部取消.下午查了些资料,重写了一下Dialog对话框.把代码放出来. public class MainActivity ...