我有一个iPhone和iPad项目.iPad需要一个分割视图控制器.我们创建两个独立的故事板吗?一个用于iPhone(使用自动布局我们可以支持所有设备)和两个用于iPad.我怀疑的是它只是在初始视图中的区别.内部视图重复.你的故事板方法怎么样?
我在Xcode 6.1上启动了一个新的单一视图项目,
转到我的目标并将Device Family设置为Universal和Deployment目标为7.1
在故事板中,我在Size类中放置了一个红色标签,Regular Width | Any Height
在Size Class中放置了一个蓝色标签Compact Width | Any Height
根据文档,我在ipad上运行时会看到一个红色标签,在iphone上运行时会看到蓝色,到目前为止,这在模拟器和实际设备上均可正常工作.
现在我回到目标并将Device Family设置为IPad,再次运行应用程序:
模拟器上的IPad 2(7.1) - 红色标签
IPad 2(7.1)(真实设备) - 蓝色标签?!?!?
IPad 2(8.1)(真实设备) - 红色标签
同样适用于IPad Air/IPad mini以及IOS 7.1的所有其他IPad我都遇到过
基本上我在通用故事板上看到这一点,当在ios 7.1中为IPad设置设备系列时,故事板被认为是紧凑的尺寸.我必须与IOS 7.1兼容,我的应用程序将首先仅针对IPad发布.有没有人知道如何解决它?
根据Apple文档:对于支持早于iOS 8的iOS版本的应用程序,大多数大小类都是向后兼容的.大小类只要向后兼容即可
该应用程序使用Xcode版本6或更高版本构建
该应用程序的部署目标早于iOS 8
大小类在storyboard或xib中指定
高度分量的值不紧凑
所有这些都适用于我的例子.
在启动iPad模拟器时,在xcode 5中创建"IOS Project"会导致以下情况.该应用程序适用于iPhone配置.我已将目标设置为5及更高版本并删除了autolayout,因为它与ios/xcode 5不兼容.
我在iPad应用程序启动时遇到以下错误.
2013-08-29 08:53:57.688 IOS Project[350:c07] -[MasterViewController setPreferredContentSize:]: unrecognized selector sent to instance 0x9e2cc20
2013-08-29 08:53:57.692 IOS Project[350:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MasterViewController setPreferredContentSize:]: unrecognized selector sent to instance 0x9e2cc20'
*** First throw call stack:
(0x1cd012 0x14c4e7e 0x2584bd 0x1bcbbc 0x1bc94e 0xbe7b 0x624d36 0x85054a 0x8506c3 0x40871e 0x4089a2 0x407876 0x418cb5 0x419beb 0x40b698 0x1f5fdf9 0x1f5fad0 0x142bf5 0x142962 0x173bb6 0x172f44 0x172e1b 0x40717a 0x408ffc 0x6d3d 0x6ca5)
Run Code Online (Sandbox Code Playgroud) 我有一个现有的iPhone应用程序(iOS6,ARC,Storyboards,XCode5),我试图转换为通用.我做了一个复制和过渡到iPad,然后做了一个构建.这就是我得到的:
编译失败.无法写入路径:/ Users/sd/Documents/iPhone Apps/SurveyorLevelingI/DerivedData/SurveyorLevelingI/Build/Products/Debug-iphoneos/SurveyorLevelingI.app/en.lproj/MainStoryboard.storyboardc
我已将DerivedData文件夹移动到项目,清理项目,关闭XCode 5,检查DerivedData文件夹(它的777)的权限都无济于事.
接下来要检查什么的想法?
我希望在iPhone上使用UITabBarViewController时可以使用UITabBarViewController,而在iPhone 6/6 +上可以使用UISplitViewController,无论是横向还是iPad.在iPad或iPhone 6/6 +横向上时,标签栏项目在最顶层的视图控制器中显示为UITableViewCells.
我真的希望调用对象不必担心设备或方向,而是作为输入传递iPhone上的标签栏中的视图控制器,以及iPad和iPhone 6/6 +上的根视图控制器在景观中.
这是我的意思的直观表示:

我认为可以使用tab bar images属性将图像放置在表格视图单元格中.我在Swift中这样做,我认为这个策略可能是这样的:
class ResponsiveRootViewController: UIViewController {
var viewControllers: NSArray?
var responsiveTabBarController: UITabBarController?
var responsiveSplitViewController: UISplitViewController?
var responsiveRootViewController: UITableViewController?
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?这已经完成了吗?我应该改为实现一个标签栏视图控制器,它在横向上隐藏它的标签栏(这对我来说似乎超级hacky)?当方向更改时,如何将生成的根表视图控制器(我希望标签栏项存在的控制器)添加到视图层次结构中?
uitabbarcontroller uisplitviewcontroller ios ios-universal-app swift
我有一个iPad应用程序,正在将其转换为在手机上显示的通用应用程序。它同时具有标签栏和导航栏,我的问题是它们在手机上太大了。我可以发誓,我听说Paul Hegarty(来自Stanford的Swift U开发应用程序的iTunes U类)提到了某个开关或技巧,该开关或技巧会导致酒吧适应iPhone,但我找不到。
这是我的应用程序栏的屏幕截图,与iPhone 6模拟器中的“照片”应用程序对比,以显示我在说什么。

差异不大,但在小手机屏幕上意义重大。
我的字体也变大了,这很混乱,因为我将所有大小类的字体设置为系统的“标题”或“正文”选项,但这可能是一个单独的问题。
任何帮助是极大的赞赏!
使用Swift编写的应用,使用iOS8故事板,顺便说一句。
编辑:
我看得越多,就越确信与酒吧无关,而与整个应用程序无关-字体和所有内容。整个应用似乎放大了120%,虽然微妙,但看起来确实很糟糕,而且浪费了空间。
现在,我还在第二个应用程序-Apple DateCell示例中看到了这一点。在iPhone 6模拟器上运行时,它也显示为“放大”。
编辑2:在iPhone 6 Plus模拟器上,这种效果甚至更加夸张-一切看起来都更加“放大”-顶部和底部的条几乎是它们应达到的高度的两倍。这可以通过下载Apple DateCell示例并运行它来看到。
编辑3:ARGGGG,这一切时间都浪费了,这是由于启动屏幕图像所致-为什么在地球上未设置启动屏幕图像会导致整个应用程序缩放?
uitabbarcontroller uinavigationcontroller ios ios-universal-app size-classes
我在创建apple-app-site-association文件时遇到了一些问题.我不知道如何在没有json扩展的情况下创建json文件并且具有application/json相同文件的内容类型.我想使用此文件而不进行任何签名,因为它没有在IOS 9中需要但我无法创建有效的apple-app-site-association文件.
我已在我的应用上设置了所有内容,例如关联域,应用委托方法,配置文件.
这是我后端的代码:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.bundleID",
"paths": [ "*" ]
}
]
}
}
Run Code Online (Sandbox Code Playgroud) 如何在通用应用程序中为ipad和ipad HD版本命名图像资源?
当支持iphone的普通和高清图像时,我们使用imageName.png&imageName-hd.png.但是如果我做了一个通用的话我就是假设我必须重命名图像并使用imageNameiPad.png&imageNameiPad-hd.png吗?
请告诉我命名约定的工作原理.
谢谢阿比纳夫
我已经向Apple提交了一个iPhone应用程序.它被拒绝了,因为它没有在iPad上运行.我将问题追溯到iAds并修复了它.然而,现在我发现iAds没有出现在iPad上(这里已经报道了一个不同的问题).我可以通过使应用程序通用来解决所有这些问题.我的问题是,在将应用程序作为iPhone应用程序提交后,我无法将其更改为iTunes连接中的通用应用程序.我可以删除该应用并重新提交,但我相信我必须使用不同的名称.在对当前名称进行了大量投资后,我非常想避免这种情况.这有什么方法吗?
我在我的项目中使用了大小等级.
我有一个按钮,只显示
其他尺寸类不显示此按钮.
在这个按钮上我应用了一个特定的效果.但我只需要为我的2个尺寸类应用此效果.
就像是 :
if button is available for the current size classe
apply the effect
Run Code Online (Sandbox Code Playgroud)
有可能实施吗?
ios ×9
ipad ×3
size-classes ×3
storyboard ×3
iphone ×2
autolayout ×1
ios9 ×1
objective-c ×1
swift ×1
tablet ×1
xcode ×1
xcode5 ×1