在新的iOS7 Facebook iPhone应用程序中,当用户向上滚动时,navigationBar逐渐隐藏自己到完全消失的程度.然后,当用户向下滚动时,navigationBar逐渐显示自己.
你会如何自己实现这种行为?我知道以下解决方案,但它立即消失,并没有与用户的滚动手势的速度挂钩.
[navigationController setNavigationBarHidden: YES animated:YES];
Run Code Online (Sandbox Code Playgroud)
我希望这不是重复,因为我不确定如何最好地描述"扩展/收缩"行为.
我目前正在ios 7上迁移我的应用程序,并且我已经在新的导航控制器/栏管理上被困了几个小时.
之前,当我们有导航控制器时,我们有一个这样的片段:
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
Run Code Online (Sandbox Code Playgroud)
在界面构建器中,我们可以选择为视图设置现有导航栏,并且所有内容都与实际视图的内容相匹配.
好的,现在,我不知道如何使用界面构建器正确设计.我仍然有我的片段来初始化我的navcontroller.但是在我的MainViewController的界面构建器中,如果我将状态栏设置为半透明或不透明的导航栏,我的顶部偏移量为44px(见下文).
Interface Builder_________________________和结果

现在,如果我将状态栏设置为无,则顶部没有偏移,但由于导航栏导致模拟器上的视图较小,因此界面构建器中视图的底部被切断.
Interface Builder_________________________和结果

我想我真的在这里遗漏了一些东西,但我在iOS7 Transitions Guide中找不到任何主题或苹果信息.
谢谢你的帮助
编辑
正如我们在图片中看到的那样,视图的第一个子节点是包含两个标签的UIScrollView,当没有scrollview时,问题不会出现.如果它是UITableView也会出现.如果标签位于UIScrollView之外,则该标签没有偏移量.
代码签名错误:未找到代码签名标识:找不到与您的构建设置("iOS Team Provisioning Profile:*")中指定的配置文件匹配的代码签名标识(即证书和私钥对).CodeSign错误:SDK"iOS 7.0"中的产品类型"应用"需要代码签名
如何在iOS 7中使用UITextView计算UITableViewCell的高度?
我在类似的问题上找到了很多答案,但sizeWithFont:参与了每个解决方案,这个方法已被弃用!
我知道我必须使用- (CGFloat)tableView:heightForRowAtIndexPath:但是如何计算TextView显示整个文本所需的高度?
在WWDC 2013视频中,Apple建议在iOS 7的表格视图中显示选择器.如何在表格视图单元格之间插入和动画视图?
像这样,从Apple日历应用程序:

我知道这个pickerView:viewForRow:forComponent:reusingView方法,但是当使用view它时,reusingView:如何更改它以使用不同的文本颜色?如果我view.backgroundColor = [UIColor whiteColor];不再使用任何视图显示.
我已将一个普通的简UITableView拖到iOS 7中的UIViewController上.
现在,在第一个单元格开始之前,存在垂直的空间偏移.我怎么摆脱它?我希望第一行更接近UITableView实际启动的顶部边缘.我没有要求大偏移吗?

有任何想法吗?
在最新版本的Xcode中构建我的应用程序时出现此错误:
致命错误:AST文件格式错误或损坏:'无法加载模块"/Users/me/Library/Developer/Xcode/DerivedData/ModuleCache/XYZYIE6ZV0OP/Darwin.pcm":找不到文件'注意:修改系统头后,请删除模块缓存在'/ Users/me/Library/Developer/Xcode/DerivedData/ModuleCache/XYZYIE6ZV0OP'生成1错误.
当我导航到:
/用户/我/库/开发商/ Xcode中/ DerivedData/ModuleCache
我可以看到目录'XYZYIE6ZV0OP'不存在.
有谁知道我怎么解决这个问题?我不能删除目录中的任何内容,如错误消息的第2部分所示,因为该目录不存在!
CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];
UISearchBar *mySearchBar = [[UISearchBar alloc]
initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];
mySearchBar.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;
UITableView *myTableView = [[UITableView alloc]
initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];
myTableView.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];
Run Code Online (Sandbox Code Playgroud)
在早期版本中,它正常工作.搜索栏显示在statusbar导航栏下方.该tableview是出现在搜索栏下方
但是当我运行它时Xcode 5 sdk iOS 7,搜索栏不可见(我认为它位于状态栏和导航栏下),并且导航栏也出现在表视图上.
是否可以通过iOS 7稳定释放来修复?
还是我编码的问题?
或者我们应该通过添加y (y = statubar height + nav bar height)值来处理它iOS 7?
我最近下载了Xcode 5 DP来测试我在iOS 7中的应用程序.我注意到并确认的第一件事是我的视图边界并不总是调整大小来考虑状态栏和导航栏.
在viewDidLayoutSubviews中,我打印视图的边界:
{{0, 0}, {320, 568}}
Run Code Online (Sandbox Code Playgroud)
这导致我的内容出现在导航栏和状态栏下方.
我知道我可以通过获取主屏幕的高度,减去状态栏的高度和导航栏的高度来解释自己的高度,但这似乎是不必要的额外工作.
还有其他人遇到过这个问题吗?
更新:
我找到了解决这个特定问题的方法.将导航栏的半透明属性设置为NO:
self.navigationController.navigationBar.translucent …Run Code Online (Sandbox Code Playgroud) ios7 ×10
ios ×6
objective-c ×3
uitableview ×3
iphone ×2
xcode ×2
cocoa-touch ×1
code-signing ×1
datecell ×1
height ×1
ipad ×1
iphone-4 ×1
swift ×1
uidatepicker ×1
uipickerview ×1
uiview ×1
xcode8 ×1