ios7点击statusBar返回列表顶部

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")]];//将自定义按钮颜色改为图片的颜色,若不设置,则默认是蓝色的


 

按照以上代码,可以自定义返回按钮。同时保持右滑返回功能。




我创建了一个QQ群,希望大家能本着互联网开放的心态,将遇到的问题和经验在群里分享,大家互相交流心得,共同提高。
群号:77311380



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值