我在Xcode 6中新引入的自适应故事板中遇到了一些麻烦。iPhone应用程序已经完成,现在我想创build一个通用应用程序。 假设我有一个viewcontroller ,它显示了一些单元格和一个详细的viewcontroller ,其中显示了单元格的细节。 在iPhone上:当我点击单元格时,我push segue了细节视图。 在iPad上:我想有一个modal segue而不是一个推。 我可以在prepareForSegue或其他方面改变这个吗? 编辑:我find了一种方式…但我并不完全满意。 如果有人有更好的解决scheme,请告诉我… 我做了两个赛段,并在代码中加以区分。 if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad) { self.performSegueWithIdentifier(kSegueToDetailModal, sender: object) } else if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Phone) { self.performSegueWithIdentifier(kSegueToDetail, sender: object) }
我是新的自动布局(我很擅长自动化)。 我的要求是: 我有2个视图(比如蓝色和绿色,两个视图的宽度和高度都是iPhone5中的300像素)。 两个视图的高度和宽度可以根据屏幕分辨率改变。 X和Y的起源也可以改变。 我应该使用这个自动调整掩码的约束条件。
使用具有自适应UISplitViewController用户界面的通用故事板。 我想使用下面的代码(来自主视图控制器)在主(主)侧显示search控制器: static NSString * const kCGISearchViewControllerID = @"SearchViewControllerID"; – (IBAction)searchButtonClicked:(UIBarButtonItem *)__unused sender { SearchViewController *searchResultsController = [self.storyboard instantiateViewControllerWithIdentifier:kCGISearchViewControllerID]; self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController]; self.searchController.searchResultsUpdater = searchResultsController; self.searchController.hidesNavigationBarDuringPresentation = NO; [self presentViewController:self.searchController animated:YES completion:nil]; } 它最初似乎工作正常(不pipe起始方向): 自动旋转后出现问题(键盘仍然可见,底层内容仍然变暗,但search栏消失): 在旋转回风景时,search栏会重新出现,但其宽度现在是错误的: (我也尝试将search控制器的searchBar放置在searchBar中,而searchBar正确调整时,search结果控制器仍然看起来不正确。) 我错过了一个呈现的UISearchController ,当UI适应不断变化的大小类时正确地animation本身? 更新: 添加self.definesPresentationContext = YES; 获取search栏/结果出现在主视图中,但search栏在该导航栏下animation,并且不可见。 另一个问题是,从纵向(有状态栏)旋转回到横向时,search栏高度不会缩小。
更新iOS 9testing版:苹果可能已经修复了iOS 9的这个问题。如果你在iOS 8的这个问题上工作(编辑),请确保它在iOS 9上也能正常工作。 在故事板中,我创build了一个popup式演示文稿segue,用于显示button中的导航和视图控制器,以及创build一个展开的细节。 如预期的那样,在纵向方向上,模式(全屏)演示被展开/消除。 在横向方向上,展开的顺序也被调用,但是展开的展示不会被自动解除。 我错过了什么东西吗? 我必须自己解除stream行的演示文稿吗? – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)__unused sender { if ([[segue identifier] isEqualToString:@"showSelectBookChapter"]) { UINavigationController *navigationController = segue.destinationViewController; if ([navigationController.topViewController isKindOfClass:[BIBLESelectViewController class]]) { BIBLESelectViewController *selectViewController = (BIBLESelectViewController *)navigationController.topViewController; selectViewController.initialBookChapterVerse = self.bookChapterVerse; } } } – (IBAction)unwindToBIBLEChapterViewController:(UIStoryboardSegue *)segue { if ([segue.identifier isEqualToString:@"unwindToBIBLEChapterViewController"]) { if ([segue.sourceViewController isKindOfClass:[BIBLESelectViewController class]]) { BIBLESelectViewController […]
我正在做一个通用的应用程序使用大小类,我想在主/主视图中使用一个TabBarController SplitView。 在添加splitView之前一切正常,但现在应用程序崩溃(原因取决于视图的层次结构)。 所以我尝试了从Apple SplitView模板开始的相同的故事板,并在其主/主视图上添加一个TabBarController …同样的问题。 层次结构 – TabBarController中的embedded式主导航控制器:SplitVC(Master)> TabBarController> NavigationController> TableView SplitVC(Detail)> NavigationController> View 在AppDelegate.m中添加了这个代码(就像这里看到的stackoverflow的问题ios8-tabbarcontroller …以防止DetailView呈现模态): – (BOOL)splitViewController:(UISplitViewController *)splitViewController showDetailViewController:(UIViewController *)vc sender:(id)sender { NSLog(@"UISplitViewController collapsed: %d", splitViewController.collapsed); if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { if (splitViewController.collapsed) { UITabBarController *master = (UITabBarController *) splitViewController.viewControllers[0]; UINavigationController *masterNavigationController = (UINavigationController *)master.selectedViewController; UINavigationController *destinationNavigationController = (UINavigationController *)vc; // […]
我已阅读此主题Xcode 6自适应UI如何向后兼容iOS 7和iOS 6? 特别是Dave和Joey的回答。 我仍然很难得到一个简单的例子工作:xcode 6,启用大小类,iPhone的iOS 7,在纵向模式下的宽度为100的UIButton,在横向模式下的宽度为400。 而在iPad上说600宽度。 我只是无法得到这个工作。 我尝试了设置宽度约束的不同组合,但是无论是在两种方向模式下,button宽度都是100,还是400,但从来不会有所不同。 如果有人能给我一个指导,我将不胜感激,为了实现这个目标,我们必须在哪个规模的课程上设置哪些约束条件。 谢谢,
这是我需要的一个场景。 我已经在IB(尺寸iPhone4英寸)上放置了一个UIButton,其IB上的初始帧是x:100,y:100,w:100,h:100 。 我想要根据设备大小来改变原点和高度。 例如iPhone6的宽度和高度是375X667,因此宽度因子(375/320 = 1.1718)和高度因子(667/568 = 1.1742) 。 在这个场景中,我想通过乘以宽度因子(1.1718)和原点Y和高度乘以高度因子(1.1782)来更改我的button原点X和宽度。 在这种情况下,我的button应显示在x:100X1.1718,y:100X1.1742,w:100X1.1718,h:100X1.1742 。 iPhone6 +也需要同样的东西。 我可以通过设置这个自动调整掩码来轻松实现。 我怎样才能达到相同的使用自动布局? 我应该遵循什么步骤,我应该适用什么限制? 我以前的这个问题 我附上了一些截图,我需要使用Autolayout(上图中显示的自动修复掩码实现)。 我的尝试: – 第一步: – 在IB上取一个尺寸为100X100的button。 设置其X = 100和Y = 100。 第二步: – 应用这个约束。