控件旋转frame的计算
来源:互联网 发布:哆啦A梦 知乎 编辑:程序博客网 时间:2024/06/10 00:12
在做一个UITableView横向滚动的例子时遇到了视图旋转后frame设置不准的情况,通过分析,总结以下计算方法:
控件旋转根据锚点进行旋转,锚点默认为0.5,为控件的中心点,锚点是不变的,根据锚点在已知旋转后frame的情况下计算出转换前的frame,p2(x2,y2,w2,h2) p1(x1,y1,h2,w2),图中,w2和h1的值相同,h2和w1的值相同
注明:w2 ==h1, h2==w1
旋转表格的代码:
- (void)viewDidLoad { [super viewDidLoad]; //p2(0,20,w,h) //p1(x,y,h,w) //转换后的高度 CGFloat w2 = self.view.frame.size.width; CGFloat h2 = 100; CGFloat y2 =20; //带人公式计算得出转换前的frame值 CGFloat x1 = (w2-h2)/2; CGFloat y1= (2*y2+h2-w2)/2; UITableView *tableview= [[UITableView alloc]initWithFrame:CGRectMake(x1,y1,h2 , w2) style:UITableViewStylePlain]; tableview.backgroundColor = [UIColor grayColor]; tableview.dataSource =self; tableview.delegate =self; //tableview逆时针旋转90度。 NSLog(@"%@",NSStringFromCGRect(tableview.frame)); tableview.transform = CGAffineTransformMakeRotation(-M_PI / 2); NSLog(@"%@",NSStringFromCGRect(tableview.frame)); [self.view addSubview:tableview]; self.tableView = tableview;}
效果图如下:
1 0
- 控件旋转frame的计算
- 控件Frame计算(一)
- oc 控件视图旋转以及frame的变化
- 关于计算控件Frame和origin的扩展方法
- 旋转,移动,frame的混用,
- 打印控件的 frame
- FFmpeg AVFrame变量的YUV Frame旋转
- 改变控件label的Frame
- 旋转坐标的计算
- 九宫格计算按钮frame的代码
- android 随旋转而旋转的控件
- 设置xib创建的控件的frame
- 三维旋转矩阵的计算
- 三维旋转矩阵的计算
- vb 遍历frame内的控件
- Frame放置其他控件的地方
- 获取xib中控件的frame
- swift可以直接修改控件的frame
- C#获取变更过的DataTable记录的实现方法
- VC检测Office版本
- Android清除浏览器缓存
- 关于html:errors与html:messages标签的问题
- R语言简单总结
- 控件旋转frame的计算
- View的事件分发
- Unity 加载网络图片
- Android6.0源码分析—— Zygote进程分析(补充)
- popuwindow的显示与隐藏问题
- 【git】git 基础简单梳理
- 第一次写博客
- Linux系统运行状况相关的Shell命令
- 链表家族(2)——双向链表