objective-c - iOS抽屉式导航栏的侧栏tableVIew不能正确显示数据
伊谢尔伦
伊谢尔伦 2017-04-18 09:44:52
0
1
451
  1. 侧栏tableView不能显示数据

  2. tableHeaderView的背景会有cell的分割线。

  3. 主tableView的pageControl的x右移了半个屏的距离。
    解决了cellTableVIew不能显示问题。原因在于leftMenuTableView手动添加了一个tableVIew在自身上,它本身也是一个tableView,所以leftMenuTableView自己有两个tableView,但是mainTableView也手动添加过一个tableView,为啥它能正确显示数据???

Github代码:传到Github上的源代码

部分代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    UITableView *mainTableView=[MainTableView createMainView];
    self.mainTableView=mainTableView;
    self.mainTableView.frame=CGRectMake(0, 0, yScreenWidth, yScreenHeight);
    mainTableView.delegate=self;
    mainTableView.dataSource=self;
    [self.view addSubview:mainTableView];
    
    UITableView *leftMenuTableView=[LeftMenuTableView createLeftMenuView];
    self.leftMenuTableView=leftMenuTableView;
    _leftMenuTableView.backgroundColor=[UIColor colorWithRed:26/256.f green:31/256.f blue:36/256.f alpha:0.7];
    leftMenuTableView.delegate=self;
    leftMenuTableView.dataSource=self;
    [self.view addSubview:leftMenuTableView];
    
    
    self.navigationController.navigationBar.barStyle=UIStatusBarStyleLightContent;
    UIButton *leftBar=[[UIButton alloc]initWithFrame:CGRectMake(0, 20, 44, 44)];
    NSString *bundleStr=@"Resource.bundle/";
    NSString *imagePath=[bundleStr stringByAppendingString:@"leftIcon.png"];
    [leftBar setImage:[UIImage imageNamed:imagePath] forState:UIControlStateNormal];
    [leftBar addTarget:self action:@selector(showLeftMenu) forControlEvents:UIControlEventTouchUpInside];
    [self.view insertSubview:leftBar aboveSubview:mainTableView];
    [self addTapGesture];
    
}
-(UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

#pragma mark -抽屉目录显示操作
-(void)showLeftMenu
{
    [UIView animateWithDuration:0.2 animations:^{
        self.leftMenuTableView.frame=CGRectMake(0, 0, yScreenWidth/2, yScreenHeight);
        self.mainTableView.frame=CGRectMake(yScreenWidth/2, 0, yScreenWidth*2/3, yScreenHeight);
    }];
}

/**
 抽屉目录消失
 */
-(void)addTapGesture
{
    UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hiddenLeftMenu)];
    [self.view addGestureRecognizer:tap];
}
-(void)hiddenLeftMenu
{
    [UIView animateWithDuration:0.1 animations:^{
        self.mainTableView.frame=CGRectMake(0, 0, yScreenWidth, yScreenHeight);
        self.leftMenuTableView.frame=CGRectZero;
//        [self.leftMenuTableView removeFromSuperview];
    }];
}

#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (tableView == _mainTableView) {
        return TryTBData.count;
    }else if (tableView ==_leftMenuTableView){
        return 13;
    }
    return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *mainCellID=@"main_cell";
    static NSString *leftCell=@"reuseidentifier";
    UITableViewCell *cell=[[UITableViewCell alloc]init];
    if (tableView == _mainTableView) {
        cell=[_mainTableView dequeueReusableCellWithIdentifier:mainCellID];
        if (!cell) {
            cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:mainCellID];
        }
        cell.textLabel.text=TryTBData[indexPath.row];
    }else if (tableView == _leftMenuTableView){
        cell=[_leftMenuTableView dequeueReusableCellWithIdentifier:leftCell];
        if (!cell) {
            cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:leftCell];
        }
        cell.textLabel.text=@"22";
    }
    return cell;
}
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
左手右手慢动作

推薦 使用 tag來判斷 2個tableView

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板