iOS - 如何在滚动 UITableView 时减少 UINavigationBar titleView 的 alpha?

标签 ios objective-c uitableview

我正在寻找一种在向下滚动 UITableView 时将 UINavigationBar titleView alpha channel 减少到零并在向上滚动时执行相反操作的方法。

使用 scrollViewDidScroll 委托(delegate)有什么干净的方法吗?

最佳答案

super 简单,只需将其放入导航 Controller 中的 TableView Controller 中:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    self.navigationController.navigationBar.alpha = 1 - (self.tableView.contentOffset.y / (self.tableView.contentSize.height - self.tableView.frame.size.height));
}

self.tableView.frame.size.height是因为 contentOffset从顶部设置,因此即使在最低位置也会被框架的宽度分开; 0-100 范围是 0 到 ( contentSize.height - frame.size.height )。

关于iOS - 如何在滚动 UITableView 时减少 UINavigationBar titleView 的 alpha?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549935/

相关文章:

objective-c - 来自 UIView 的图像

iphone - 不需要的变量释放(iOS)

ios - UIView 内的 UITableView - 仅当在 uitableview 外滚动单元格时才加载数据

ios - “弹出”查看动画

iPhone - 将 UISwitch 上的文本从 "ON/OFF"更改为 "TRUE/FALSE"?

ios - 如何将 plist 填充到 UITableView - ios

ios - 如何在原型(prototype)单元格中使用 UIImageView 在 UITableView 中创建视差效果

iphone - IOS:从照片路径获取 NSData

ios - iOS的位置服务中 "Always"和 "While Using App"之间的区别

ios - Swift multiple viewcontroller 需要在 rootviewcontroller 中用作底页