为什么tableviewcell的宽度比tableview的宽度宽?

问题描述

我要做一个从侧边弹出的tableview,设置了宽度为屏幕的三分之二,在我手机上就是250,
但是设置cell的时候,发现cell的宽度竟然有320,这是怎么回事?

clipboard.png

相关代码

    self.rightSideMenu = [[UITableView alloc]initWithFrame:CGRectMake(self.view.size.width, 0, self.view.size.width*2/3, self.view.size.height) style:UITableViewStyleGrouped];
    self.rightSideMenu.delegate = self;
    self.rightSideMenu.dataSource = self;
    
    
    - (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
    static NSString *identifier = @"";
    if (indexPath.section == 0) {
        identifier = @"mapTypeCell";
        MapTypeCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        if (!cell) {
            cell = [[MapTypeCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
            [cell initData];
        }
        return cell;
        
    }else{
        identifier = @"rightSideMenuCell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        if (!cell) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier];
        }
        return cell;
    }
}

MapTypeCell里还要再放一个collectionview

self.collectionView = [[UICollectionView alloc]initWithFrame:self.contentView.bounds collectionViewLayout:layout];
    self.collectionView.dataSource = self;
    self.collectionView.delegate = self;
    [self.contentView addSubview:self.collectionView];

现在collctionview的宽度为320,有一部分超出屏幕了。

阅读 2.8k
1 个回答

默认是 320 的,感觉初始化没有做好
那个 cellForRowAtIndexPath 中 Cell 的写法,官方很早就不推荐了啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进