标签: ios6

iOS 6轮换:supportedInterfaceOrientations不起作用?

我在iOS 6 SDK中遇到了这个问题:我有一些应该被允许轮换的视图(例如视频视图),而有些则不允许.现在我明白我必须检查应用程序的Info.plist中的所有方向,然后在每个ViewController中进行排序,应该发生什么.但它不起作用!应用程序始终旋转到Info.plist中给出的方向.

Info.plist的:

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

任何不允许旋转的ViewController:

//deprecated
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
Run Code Online (Sandbox Code Playgroud)

观察:App旋转到横向和纵向.任何想法为什么或我做错了什么?

干杯,马克

编辑:我的最新调查结果还表明,如果您希望在应用程序中的某个位置进行旋转,必须激活项目设置或Info.plist中的所有四个旋转方向.替代方法是覆盖

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
Run Code Online (Sandbox Code Playgroud)

在你的AppDelegate中,它会覆盖Info.plist.不再可能只在Info.plist中设置Portrait,然后通过覆盖shouldAutorotateToInterfaceOrientation或supportedInterfaceOrientations在某些ViewController中进行旋转.

rotation screen-rotation ios ios6

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

在iOS 6上不推荐使用groupTableViewBackgroundColor吗?

我只是用iOS 6.0和Xcode 4.5GM测试我的应用程序,我设置了这样的视图:

[self.view setBackgroundColor:[UIColor groupTableViewBackgroundColor]];
Run Code Online (Sandbox Code Playgroud)

因此,视图具有与公共表视图相同的模式.

这适用于iOS 4和5,但在iOS 6中它只是给我一个白色背景.

这是否已被弃用?如果是这样,我该如何更换它?

谢谢

background view tableview ios ios6

36
推荐指数
5
解决办法
1万
查看次数

Xcode 4.5命令行单元测试

在通过命令行运行我的单元测试时更新到Xcode 4.5后出现问题.以下是我尝试运行测试时看到的输出

Unknown Device Type. Using UIUserInterfaceIdiomPad based on screen size
Terminating since there is no workspace.
/Applications/Xcode.app/Contents/Developer/Tools/RunPlatformUnitTests.include:334: note: Passed tests for architecture 'i386' (GC OFF)

/Applications/Xcode.app/Contents/Developer/Tools/RunPlatformUnitTests.include:345: note: Completed tests for architectures 'i386'
Run Code Online (Sandbox Code Playgroud)

虽然它确实说测试已经通过并完成,但我认为它们实际上并没有被运行.

我正在使用以下命令来运行测试xcodebuild -workspace MyApp.xcworkspace -scheme MyAppTests -sdk iphonesimulator -configuration Debug clean build TEST_AFTER_BUILD = YES

有没有人遇到同样的问题,可以提供解决方案?

unit-testing xcodebuild ios6 xcode4.5

36
推荐指数
3
解决办法
1万
查看次数

iOS6 UICollectionView和UIPageControl - 如何获取可见单元格?

在研究iOS6的新功能时,我遇到了一个关于UICollectionView的问题.
我目前正在使用Flow布局测试它,滚动方向设置为水平,滚动和分页启用.我将其大小设置为与我的自定义单元格完全相同,因此它可以一次显示一个,并通过向侧面滚动,用户将看到其他现有单元格.

它完美地运作.

现在我想将UIPageControl添加到我创建的集合视图中,这样就可以显示哪个单元格可见以及有多少单元格.

构建页面控件非常简单,定义了frame和numberOfPages.

我所遇到的问题,如问题标题,是如何在集合视图中获取当前可见的单元格,因此它可以更改页面控件的currentPage.

我已经尝试过委托方法,比如cellForItemAtIndexPath,但它是为了加载单元格而不是显示它们.当一个单元格不再显示时,didEndDisplayingCell触发,这是我需要的相反事件.

它似乎-visibleCells和-indexPathsForVisibleItems,集合视图方法,对我来说是正确的选择,但我碰到了另一个问题.什么时候触发它们?

在此先感谢,希望我能让自己清楚明白,这样你们才能理解我!

objective-c ios ios6

36
推荐指数
5
解决办法
3万
查看次数

iOS Autolayout - 如何在视图之间设置两个不同的距离取决于屏幕高度

我知道我错过了什么,因为这必须是一件容易实现的事情.

我的问题是我在我的"加载屏幕"(飞溅后出现的那个)UIImageView有两个不同的图像,用于3.5英寸和4英寸大小的屏幕.在该图像的某个位置,我放置了一个UIActivityIndi​​cator,告诉用户应用程序正在后台加载某些内容.两个图像的位置不一样,因为其中一个明显高于另一个,所以我想设置一个autolayout约束,允许我将该活动指示器放在不同的高度,取决于应用程序是否在运行iPhone 5与否.

没有Autolayout,我将视图的frame.origin.y设置为300(例如),然后在ViewController的viewDidLoad方法中,我会问应用程序是否在iPhone 5中运行,所以我' d将值更改为,例如,350.我不知道如何使用Autolayout执行此操作,我认为它必须非常简单.

iphone ios autolayout ios6

36
推荐指数
2
解决办法
2万
查看次数

用于Springboard的UICollectionView文件夹

我试图达到以下效果:

A UICollectionView显示父类型对象的单元格网格,例如相册.当我点击其中一个项目时,我想将该元素滚动到屏幕顶部并从中打开一个类似Springboard的文件夹.在该文件夹区域内,应显示另一个集合,其中包括详细项目,即该相册的单张照片.点击剩余的"父"视图会再次关闭该文件夹.看到这个架构:

在此输入图像描述

到目前为止我所做的是专辑的常规集合视图.当我选择一个时,它会滚动到所选项目到顶部,然后用于JWFolders在该位置打开一个空文件夹.一旦显示,我触发周围UINavigationController以推送我的第二个视图控制器与详细项目.那个是布局的,所以用户看起来好像它仍然是相同的视图.

这种方法有几个问题,我想知道如何更好地做到这一点:

  1. JWFolders截取屏幕截图并向上/向下动画两半以实现打开效果.这没关系,但在iPad3上相当慢,因为它移动了很多像素而且iPad3的GPU不能胜任这项任务.

  2. 第二个视图需要像素完美才能匹配第一个视图.这很可能会意外地破裂.

  3. 我对视图控制器转换可能的动画有限.UINavigationController右边的默认推送不合适.我重写它来做一个交叉溶解,但它仍然远非理想.

我想指出如何以可维护的方式处理这个问题,这不需要对框架的设计要做太多创造性的黑客攻击.我可能会遗漏一些明显的东西,所以我们非常感谢您对示例或一般建议的指示.

更新:

我改变了一点方法.现在我使用一个容器视图控制器,它有两个嵌入式集合视图控制器.一个用于"专辑",一个用于"照片"部分在底部.UIImageView在两者之间的中间使用一个我可以得到向上完成的三角形.从维护的角度来看,这也很好,因为它可以使两个集合完全分开处理,从而简化维护.

该应用程序使用自动布局,因此我可以通过修改约束来更改两个嵌入视图中的每个视图所占用的空间量.这比使用JWFolders的基于屏幕截图的方法更快,并且在iPad3上也能很好地工作.

几乎让我成为了我想成为的人.剩下的一件事就是让开场动画正确.我想同时滚动相册集合,以便点击的项目到顶部并展开照片集合,三角形指向相册单元格.

我可以通过布局约束以某种方式将下部视图"连接"到该单元格,以便scrollToItemAtIndexPath:atScrollPosition:animated:调用拖动下部视图打开吗?

xcode cocoa-touch ios ios6 uicollectionview

35
推荐指数
1
解决办法
3074
查看次数

iOS 7中UINavigation Back Button的自定义图像

我有一个自定义UIBarButtonItem的图像在iOS 6.1中工作正常.但iOS 7有一个tintColor它覆盖我的图像上的这种颜色.如果我设置tintColor[UIColor clearColor]按钮不会一起显示.

如何在iOS 7中显示我的后退按钮,就像在iOS 6中一样?请帮忙?

iOS 6.1

IOS 7

iphone objective-c ios ios6 ios7

35
推荐指数
5
解决办法
3万
查看次数

我还可以在iOS 6及更高版本中使用谷歌地图吗?

您可能知道Apple最近宣布推出iOS 6,并附带自己的新地图.我刚刚在新版iOS上运行我的应用程序,它在MKMapView新的Apple Maps中用作标准地图.它可能很棒,但我的应用程序依赖于谷歌地图,因为我使用他们的数据和路线.有什么方法我仍然可以使用谷歌地图而不是苹果自己的版本?

iphone google-maps objective-c mkmapview ios6

34
推荐指数
0
解决办法
1万
查看次数

在我的屏幕上安装iPhone 5模拟器?

Apple似乎只包含了iPhone 5(4英寸)模拟器的视网膜版本.这很棒,但太大了,无法放在我的屏幕上.几乎35%被切断了,我有一台23英寸的显示器.

是否有任何变通方法/黑客可以让它完全显示在我的屏幕上?Apple可能包含非视网膜(只是普通尺寸)的iPhone 5模拟器吗?

它们适用于iPhone 4,因此不确定为什么他们不会为iPhone 5包含相同的东西.

iphone ios ios6

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

重新加载UICollectionView页眉或页脚?

我有一些数据是在另一个更新UICollectionView标头的线程中获取的.但是,我没有找到一种重新加载补充视图(如页眉或页脚)的有效方法.

我可以打电话collectionView reloadSections:,但这会重新加载整个部分,这是不必要的.collectionView reloadItemsAtIndexPaths:似乎只针对细胞(不是补充观点).并且调用setNeedsDisplay标题本身似乎也不起作用.我错过了什么吗?

ios6 uicollectionview

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