如何修复UIButton/UILabel等不同方向的某些位置?谢谢!!! 当我为不同的方向设置不同的框架奇怪的事情发生?有没有解决方案?如何修复UIButton/UILabel等不同方向的某些位置?
1
A
回答
0
只有当您的视图非常复杂时才需要制作两个视图,例如iPhone计算器,它在旋转时会完全更改。例如,如果您只想重新居中按钮或在转角处放置一个开关,您就会想要使用自动调整系统。这个系统有时被称为“支柱和弹簧”。在Techotopia有一个很好的,简单的介绍。
0
是的!你需要layoutSubviews。只要方向改变,或者在视图出现之前就会调用它。
使用此方法根据视图的边界来布局子视图。例如:
- (void)layoutSubviews {
CGRect bounds = self.bounds;
do your layout stuff here
}
布局是一个相当复杂的问题,你会发现吨的例子,教程在那里。我通常亲自处理它的方式是考虑每个元素如何让它定位于不同的方向。宽度或高度是否需要更改?是否应该相对于屏幕的顶部或左侧进行修正?另一个组件是相对于某个组件移动还是被修复?
1
创建2个视图会更好。一个用于肖像,另一个用于景观。
然后你可以相应的格式设置所有的数据。
然后根据设备方向进行视图替换。
if((interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
{
[myLandscapeView removeFromSuperview];
[myPortraitView setFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:myPortraitView];
[self.view bringSubviewToFront:myPortraitView];
}
if((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight))
{
[myPortraitView removeFromSuperview];
[myLandscapeView setFrame:CGRectMake(0, 0, 480, 320)];
[self.view addSubview:myLandscapeView];
[self.view bringSubviewToFront:myLandscapeView];
}
我希望它对你有帮助。
干杯。
相关问题
- 1. 如何某些位置
- 2. 需要帮助修复某些UIViewControllers的方向
- 3. 如何修复桌面的位置如何修复桌面的位置如何修改桌面位置
- 4. 如何修复Android上不同设备的屏幕方向
- 5. 在某些方向移动位图Android
- 6. 修复位置
- 7. 如何修复按钮的位置?
- 8. 如何使Widget修复的位置?
- 9. 如何修复表格行的位置
- 10. Android - 如何修复图像的位置
- 11. 如何修复Mdichild窗体的位置?
- 12. 如何修复UITableView中LiquidFloatingActionButton的位置?
- 13. 如何修复Android中Button的位置
- 14. php重定向不在某些位置工作
- 15. UITableViewHeader(修复位置)
- 16. 如何不重定向某些文件
- 17. 修复图像的位置
- 18. 修复表的位置
- 19. 修复UIViewController的方向
- 20. 水平滚动时如何修复表格的某些列
- 21. 如何检测滑动方向,触摸位置等?
- 22. 计算某些字符的组合,同时在某个点上修复某些其他字符
- 23. 某些位置的多个径向渐变
- 24. 使用String.format将不同大小的对象放置在某些位置
- 25. 如何修复WebStorm无法识别某些Node.js Express属性?
- 26. 如何在元素到达网页中的某个位置时修复元素的位置?
- 27. 取消设置和重置某些位
- 28. 修复状态栏位置
- 29. 如何调出来,如果有某些位置的空的空间某一位置的字符串中的SQL
- 30. 在iPad上修复方向
发生了什么奇怪的事情?你有这样的照片?您可以查询当前的设备方向,然后根据它将您的项目放在父视图中。 –