相关疑难解决方法(0)

NSLog C结构是否可能(如CGRect或CGPoint)?

我希望能够调试C结构,而无需显式键入它们所包含的每个属性.

即我希望能够做这样的事情:

CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Run Code Online (Sandbox Code Playgroud)

显然'%@'不起作用,因此问题.

c cocoa cocoa-touch objective-c

410
推荐指数
7
解决办法
10万
查看次数

如何在Core Graphics/Quartz 2D中绘制圆角矩形?

我需要为圆角矩形绘制轮廓.我知道我可以制作线条和弧线,但也许还有一个圆形的功能?

iphone quartz-graphics

63
推荐指数
7
解决办法
8万
查看次数

横向模式仅适用于iPhone或iPad

我想创建一个不使用纵向模式的应用程序.

我不确定是否需要编辑plist或者除了plist之外还有代码

iphone cocoa-touch objective-c uikit ipad

37
推荐指数
4
解决办法
4万
查看次数

如何将我的应用限制为横向模式?

我使用SplitView模板创建了我的iPad应用程序.我想知道将我的应用程序限制为横向模式的最佳方法是什么?

我试过shouldAutorotateToInterfaceOrientation:在DetailViewController.m中重写 方法

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Run Code Online (Sandbox Code Playgroud)

但是4.2 GM仍然是有缺陷的,它无法显示控制器视图.我还有其他选择吗?

提前致谢.

UPDATE1

  • 我已经提交了错误报告: 错误ID#8620135

  • 我的应用程序几乎已经完成,我必须找到一个工作周期,因为我认为他们不会在4.2正式发布之前解决这个问题(GM已经出局!)

    为了重新创建bug,只需在任何UIViewControllers(RootViewController或DetailViewControllers)中使用SplitView模板并覆盖上面的方法

UPDATE2

我找到了解决办法.(有关完整的解决方法,请参阅UPDATE3)

设置UISupportedInterfaceOrientations仅支持横向,这将强制应用程序以横向模式启动,允许DetailViewController正确启动(因此显示正确)

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
Run Code Online (Sandbox Code Playgroud)

但是如果你旋转设备,它会变成肖像模式!!!,所以仍然需要覆盖 shouldAutorotateToIntercafeOrientation:如上所述

讨论:

如果这不是一个错误,我会期望在视图控制器不支持的方向启动应用程序时出现警告或执行错误,异常或其他问题.此外,为什么只有DetailViewController不显示?如果这是规范,那么RootViewController也应该无法加载.你不觉得吗?谢谢你的帮助...;)

UPDATE3

经过进一步测试后,我意识到上述解决办法在某些情况下不起作用.例如,当设备处于横向状态时启动应用程序将无法正常工作!真正的问题似乎是在iOS4.2GM中,UISplitViewController需要其所有控制器在其加载时具有所有旋转.因此有必要欺骗他,以便在横向模式下加载,然后不允许他旋转其视图控制器.

所以这是烦人的iBug的新解决方案.

第1步:像这样设置Info.plist:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
Run Code Online (Sandbox Code Playgroud)

Step2在DetailViewController.m或.h中设置一个新标志(来自SplitView模板)

BOOL lockRotation = NO; //WORK-ARROUND: Bug ID# 8620135.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    //WORK-ARROUND: Bug ID# 8620135.
    if (lockRotation) {
        return UIInterfaceOrientationIsLandscape(interfaceOrientation);
    }else{
        return YES;
    }
}
- (void)viewDidLoad {
    [super viewDidLoad];
    //set NO here since this …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch landscape orientation ipad

13
推荐指数
1
解决办法
8043
查看次数

如何只在iPad上允许横向显示?

所以我已经尝试在我的iPad应用程序的Info.plist中设置Supported Interface Orientations键以支持两种横向模式.然而,当我将iPad放入纵向时,我的屏幕会旋转.由于我的应用程序的设计方式,我只希望我的应用程序以横向模式显示自己,我该怎么做?

ipad ios4

2
推荐指数
1
解决办法
3604
查看次数