你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> tableView等滾動視圖滾動時收縮上下導航欄與標簽欄

tableView等滾動視圖滾動時收縮上下導航欄與標簽欄

編輯:關於IOS
[objc] view plaincopy

  1. //
  2. //  LQXViewController.m
  3. //  LQXCallBackBar
  4. //
  5. //  Created by 劉祺旭 on 15/4/27.
  6. //  Copyright (c) 2015年 CSDN探花花花. All rights reserved.
  7. //
  8. #import "LQXViewController.h"
  9. #define LQXWidth self.view.bounds.size.width
  10. #define LQXHeight self.view.bounds.size.height
  11. #define LQXData [NSString stringWithFormat:@"隨機數據---%d", arc4random_uniform(1000000)]
  12. @interface LQXViewController ()<UITableViewDelegate,UITableViewDataSource>
  13. @property (nonatomic, strong)UITableView *tableView;
  14. @property (nonatomic, strong)NSMutableArray *dataArray;
  15. @property (nonatomic, assign) BOOL hidden;
  16. @property (nonatomic, assign) BOOL scrollUporDown;
  17. @end
  18. @implementation LQXViewController
  19. - (void)viewDidLoad {
  20.     [super viewDidLoad];
  21.     self.tabBarController.tabBar.frame = CGRectMake(0, LQXHeight - 40, LQXWidth, 40);
  22.     UIView *statusBarView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, LQXWidth, 20)];
  23.     statusBarView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"首頁--標題欄.png"]];
  24.     [self.view addSubview:statusBarView];
  25.     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
  26.     self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, LQXWidth, LQXHeight - 20) style:0];
  27.     self.tableView.bounces = YES
  28.     ;
  29.     self.tableView.dataSource = self;
  30.     self.tableView.delegate = self;
  31.     self.tableView.rowHeight = 135;
  32.     self.tableView.userInteractionEnabled = YES;
  33.     self.tableView.showsHorizontalScrollIndicator = NO;
  34.     self.tableView.showsVerticalScrollIndicator = NO;
  35.     self.dataArray = [NSMutableArray array];
  36.     for (int i = 0; i< 100; i++) {
  37.         [self.dataArray addObject:LQXData];
  38.     }
  39.     [self.view addSubview:self.tableView];
  40. }
  41. - (void)didReceiveMemoryWarning {
  42.     [super didReceiveMemoryWarning];
  43.     // Dispose of any resources that can be recreated.
  44. }
  45. #pragma mark - Table view data source
  46. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  47. #warning Potentially incomplete method implementation.
  48.     // Return the number of sections.
  49.     return 1;
  50. }
  51. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  52. #warning Incomplete method implementation.
  53.     // Return the number of rows in the section.
  54.     return self.dataArray.count;
  55. }
  56. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  57.     static NSString *str = @"reuse";
  58.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:str];
  59.     if (!cell) {
  60.         cell = [[UITableViewCell alloc] initWithStyle:0 reuseIdentifier:str];
  61.     }
  62.     cell.textLabel.text = self.dataArray[indexPath.row];
  63.     return cell;
  64. }
  65. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  66.     if ([scrollView isEqual:self.tableView]) {
  67.         static float newy = 0;
  68.         static float oldy = 0;
  69.         newy = scrollView.contentOffset.y ;
  70.         if (newy != oldy ) {
  71.             if (newy > oldy) {
  72.                 self.scrollUporDown = YES;
  73.             }else if(newy < oldy){
  74.                 self.scrollUporDown = NO;
  75.             }
  76.             oldy = newy;
  77.         }
  78.         if (_scrollUporDown == YES) {
  79.             self.hidden = YES;
  80.             [UIView animateWithDuration:0.5 animations:^{
  81.                 self.navigationController.navigationBar.frame = CGRectMake(0, -40, LQXWidth, 40);
  82.                 self.tabBarController.tabBar.frame = CGRectMake(0 , LQXHeight + 40, LQXWidth, 40);
  83.             }];
  84.         }
  85.         else if (_scrollUporDown == NO) {
  86.             if (self.hidden == YES) {
  87.                 [UIView animateWithDuration:0.5 animations:^{
  88.                     self.navigationController.navigationBar.frame = CGRectMake(0, 20, LQXWidth, 40);
  89.                     self.tabBarController.tabBar.frame = CGRectMake(0 , LQXHeight , LQXWidth, 40);
  90.                 }];
  91.                 self.hidden = NO;
  92.             }
  93.         }
  94.     }
  95. }
  96. /*
  97. #pragma mark - Navigation
  98. // In a storyboard-based application, you will often want to do a little preparation before navigation
  99. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  100.     // Get the new view controller using [segue destinationViewController].
  101.     // Pass the selected object to the new view controller.
  102. }
  103. */
  104. @end
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved