我有一个故事板iOS应用程序,我有很多观点.我有一个UINavigationController,选中了"显示工具栏"选项,然后填充整个视图层次结构.
假设我的视图流是3个视图,A,B和C:
View A --(push)--> View B --(push)--> View C
Run Code Online (Sandbox Code Playgroud)
视图A是一个普通的视图控制器,工具栏上有一个用于推动视图B的按钮.视图B是一个表控制器,所以我想在这里隐藏工具栏.视图C是另一个视图,如视图A,需要显示工具栏.
在Xcode/Storyboard中,如果在View BI中选择"隐藏推送时的底部栏",它就完全如此 - 底部栏对于视图B是隐藏的.同样,如果我为"底栏"选择选项选择"无",则没有查看B.好吧.
这是我的问题:无论我做什么,使用视图B的任一选项,我的工具栏都不会返回到视图C.如果我将View C的工具栏设置为推断(并且取消选中隐藏在推送上)它不显示,也不显示如果我手动将其设置为"工具栏".
有任何想法吗?
我要将我的应用程序更新到新的4英寸显示屏,我发现我应该检查检查器中的Use Autolayout复选框.这样做我失去了与iOs 5的兼容性.如何在不失去这种兼容性的情况下支持4"显示器?非常感谢你.
objective-c backwards-compatibility ios5 uistoryboard iphone-5
我正在使用带有Storyboard的UICollectionView并尝试子类化UICollectionViewFlowLayout但它似乎不起作用.
我创建了子类CollectionViewFlowLayout:
#import "CollectionViewFlowLayout.h"
@implementation CollectionViewFlowLayout
-(id)init
{
NSLog(@"Init of CollectionViewFlowLayout");
if (!(self = [super init])) return nil;
self.itemSize = CGSizeMake(250, 250);
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
在Storyboard的Identity Inspector中,我更改了流布局的类:

但是当我保存/构建/运行时,itemSize没有设置为250而我的NSLog没有被输出.
我在这样的例子中看到你可以在collectionView控制器中设置布局,但我认为如果你在故事板中设置它是没有必要的.
xcode objective-c uistoryboard uicollectionview uicollectionviewlayout
在为我的一个项目试用故事板时,我遇到了一些我没有很好解决方案的东西;
我有一个基于导航的应用程序,它显示了一个UITableViewController.tableView使用用户创建的元素填充.点击元素单元格会调出详细视图控制器.用户可以通过点击tableView中的按钮来创建新元素.这将打开一个模态视图,它将处理创建.
现在,当用户完成创建元素并解除模态视图控制器时,我希望用户看到相应的新细节视图控制器而不是tableview.但我无法弄清楚如何在故事板中实现这一目标.
有没有人有这个好的模式?
现在的情况
TableView --(tap create)--> creation modal view --(finish creating)--> TableView
Run Code Online (Sandbox Code Playgroud)
应该
TableView --(tap create)--> creation modal view --(finish creating)--> detail view
Run Code Online (Sandbox Code Playgroud) objective-c uinavigationcontroller modalviewcontroller ios uistoryboard
当我UIToolbar在视图控制器上将底部设置为黑色时,它显示为更灰色的颜色(其他颜色也会发生同样的事情 - 它会逐渐淡化它们).我假设发生的事情是在iOS7工具栏中似乎调整了它下面的颜色(当前是白色),这使得颜色更加暗淡.
我更新了视图控制器,以便关闭"扩展边缘"选项,但仍然可以获得此效果.还有其他人有这个问题吗?
更新:我通过将UIToolbar的背景颜色设置为黑色来解决了这个问题(我在以前的iOS版本中没有这么做).如果有人能想出更好的解决方案,请告诉我.
在iOS开发的旧XIB世界中,我能够创建一个View Controller和一个XIB,并将它们用于iPhone和iPad环境.只需进行一些代码调整,XIB就会调整大小并进行调整以适应不同的尺寸和宽高比.这使我可以降低两种布局随时间不同步的风险.
在故事板的世界中,同样的事情是可能的吗?默认情况下,Xcode为我的Universal应用程序创建了两个不同的故事板 - 一个用于iPhone,另一个用于iPad.
如何为两者使用一个故事板?
谢谢!
更新:
Xcode 6中的大小类基本上可以实现Universal Storyboards的目标.更多信息:
我正在为我的应用程序使用单个本地化的Storyboard.该应用程序必须有一个选项来动态更改语言.到目前为止,我想出了如何更改应用程序启动期间使用的语言:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate
Run Code Online (Sandbox Code Playgroud)
并设法通过删除关键窗口的所有子视图重新加载我的整个应用程序,从故事板重新加载初始视图控制器并使其成为新的根视图控制器.(它有一些问题,比如管理开放资源,但可以做到.)
我唯一想知道的是如何强制iOS以新语言重新加载故事板?似乎故事板以某种方式缓存,并且-UIStoryboad:stroyboardWithName:fromNib不会完全重新加载它,所以它出现在最后一种语言中.
我已经考虑了其他两个选择:
每种语言都有不同的故事板文件(这是无法管理的,我不想这样做)
在我的所有视图控制器中使用事件侦听器,它们响应语言更改并在UI上设置新字符串(每次从故事板中实例化任何接口元素时也必须调用它).这个解决方案需要更多的时间,而不是我们想要花费的时间,并且还大大增加了错误的可能性.
还有一些更聪明的方法吗?我不想保持我的应用程序的当前状态,所以重新启动它就像它被杀死和实现似乎是一个合理的解决方案.
我一直在研究Matt Nueberg的编程iOS 7书,并且正在努力理解与约束方向有关的东西.在本书的第28页,在本multiplier, constant节中,作者说:
第一个属性设置为结果.
所以我读这个的方式是,当存在两个项目约束时,项目1是基于项目2的值导出或依赖的.
所以我有一个视图和一个子视图(按钮),我想水平居中按钮.所以我安排了我的视图和按钮,然后从按钮控制拖动到父视图:

并选择Center Horizontally:

然后,如果我选择该约束,我会在右侧的属性检查器中看到以下内容:

这将超级视图显示为项目1,将按钮显示为项目2.这是否意味着它会尝试调整超视图的中心以匹配按钮的中心?那不是我想要的.或者我误解了第1项和第2项的含义?或者它是否意味着我做了控制 - 向后拖动,你应该从依赖拖到依赖,而不是像我那样依赖依赖到依赖?
我认为订单确实很重要,也就是说,它是第1项,也是第2项.因为有一个菜单选项来交换这两个.如果它只是一个对调整后的内容没有偏好的解算器,那就没有必要了.
在故事板中有一个UIView,具有约束例如"0.1"比例高度.
想象一下,对于许多不同场景中的视图,您有类似的约束"0.1".
假设您要将值更改为0.1到0.975.
你必须在任何地方单独改变它.
有没有办法使用@IBInspectable和/或约束来形成一种"全局价值"?
这样您就可以立即更改所有内容,并在故事板中同时查看结果.
(当然,在运行时你可以在代码中传播它们.但最好在故事板上看到它.)
请注意,Wain的解决方案可以完美地运行:您可以设置一次值,并影响应用程序中的任何位置.但不幸的是,它只在运行时才这样做,你没有在故事板上看到它.
我正在制作一个自定义activityIndicator.我希望它表现得像UIActivityIndicatorView但有不同的动画.
当您放置UIActivityIndicatorView到Storyboard时,此视图的宽度和高度将被锁定以进行修改(变灰).
在代码中为视图制作固定宽度没有问题,但是可以以相同的方式制作自定义视图UIActivityIndicatorView:在故事板中灰度和高度是否变灰?
uistoryboard ×10
ios ×8
objective-c ×3
ios7 ×2
xcode ×2
ios5 ×1
iphone-5 ×1
localization ×1
uicontrol ×1
uitoolbar ×1
uiview ×1
xcode5 ×1