【问题标题】:orientation change working strangely from landscape to portrait从横向到纵向的方向变化奇怪地工作
【发布时间】:2013-02-21 07:49:01
【问题描述】:

在横向模式下创建应用程序后。我正在纵向视图中为我的应用程序添加菜单视图
但是当我尝试从 xib 和以编程方式更改视图时
视图已更改,但移动模拟器仍显示为横向视图以及显示前一个视图背景
我已经解决了很多关于方向的问题,但似乎没有什么对我有用

这是应用的图片参考

创建按钮的代码是
简单的按钮代码是

easee = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[easee addTarget:self 
            action:@selector(easy:)
  forControlEvents:UIControlEventTouchUpInside];
[easee setImage:[UIImage imageNamed:@"radioButtonDisabled.png"] forState:UIControlStateNormal];
easee.frame = CGRectMake(85.0, 86.0, 22.0, 22.0);
[self.view addSubview:easee];

【问题讨论】:

  • 请向我们展示一些与某些按钮的位置有关的代码。
  • 你能发布你的自动旋转方法吗?如果您使用的是最新的 iOS,您可能需要声明掩码以进行自动旋转。
  • @Spectravideo328 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // 对于支持的方向返回 YES return (interfaceOrientation == UIInterfaceOrientationPortrait); } 定位代码
  • 按钮位置是使用代码设置还是仅使用 IB 设置?
  • @Spectravideo328 :: 使用界面生成器在 .xib 中创建标签,并通过提供坐标信息在代码中动态创建按钮:

标签: ios objective-c xcode uiviewcontroller uiinterfaceorientation


【解决方案1】:

设备旋转时视图框架不旋转。只有框架内的视图边界旋转。 如果您的 UIView 对象在纵向和横向上的位置不同,并且您已经尝试过 struts 和 springs 但这还不够,那么您必须以编程方式对它们的位置进行编码。在这种情况下,请使用边界。

easee.bounds = CGRectMake(85.0, 86.0, 22.0, 22.0);

请记住,您需要为纵向和横向设置不同的代码(坐标),具体取决于对象在视图中的位置、方向。

请阅读观点PG:http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html

它会让你很好地理解视图、边界、框架等......

希望这会有所帮助。

【讨论】:

  • 我只希望这个视图有一个肖像视图,并且框架是为这种情况设置的 :: 有关的任何帮助
  • 你为什么在你的问题中说:“在横向模式下创建应用程序之后”
  • 我明白你的意思>>但问题的第一部分是仅将菜单屏幕显示为纵向视图>>>无需编写单独的定向代码,因为我只想将其显示给肖像视图::
  • 因为所有其他视图都是横向视图::
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
相关资源
最近更新 更多