您的位置:首页 > 移动开发 > IOS开发

ios7点击statusBar返回列表顶部

2015-08-28 15:45 411 查看
转载自: http://m.blog.csdn.net/blog/u014223290/38686079
ios7中增加了两个新功能

1,点击statusBar,返回列表顶部

2,右滑返回上一级界面

以上两个功能在xcode5中创建的工程是默认开启的,若不生效,则需要review一下自己的代码。

这两个功能需要改动的地方不多

1,
// When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its delegate does not return NO from `shouldScrollViewScrollToTop`, and it is not already at the top.
// On iPhone, we execute this gesture only if there's one on-screen scroll view with `scrollsToTop` == YES. If more than one is found, none will be scrolled.
@property(nonatomic) BOOL  scrollsToTop;          // default is YES.
以上注释的意思是将tableView的scrollsToTop属性设置为YES.同时

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;方法返回YES.


若同一时刻有两个scrollView的scrollsToTop属性都为YES,则系统不知道要响应哪一个。此功能就会失效。

解决方法是找到所有的tableView和scrollView,将不需要此功能的对象scrollsToTop属性设置为NO.

注意查找那些会一直存在的界面,比如侧边栏。(我也是找了好久才发现项目侧边栏里有一个scrollView)

2,右滑返回

如果自定义了leftBarButtonItem为返回功能时,右滑返回失效。应该设置backBarButtonItem为返回功能。关于leftBarButtonItem和backBarButtonItem的区别,可以去查找资料

解决方法:

<pre name="code" class="objc">    // 如果要自定义返回按钮,需设置以下两个 iOS7 新增的属性
[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:DDImageName(@"leftBack")]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:DDImageName(@"leftBack")]];

// 位移隐藏掉文字
[UIBarButtonItem.appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -64) forBarMetrics:UIBarMetricsDefault];

UIButton* button = [Pub backButtonWithTarget:self action:@selector(onleftBarClick:) imgName:DDImageName(@"leftBack")];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
//    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];//使用此行代码时右滑返回失效
self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:DDImageName(@"leftBack")]];//将自定义按钮颜色改为图片的颜色,若不设置,则默认是蓝色的




按照以上代码,可以自定义返回按钮。同时保持右滑返回功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: