佚名通过本文主要向大家介绍了ios tableview,ios tableview优化,tableview,qt tableview,tableview详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: iOS抽屉式导航栏的侧栏tableVIew不能正确显示数据
描述:
解决方案1:
描述:
侧栏tableView不能显示数据
tableHeaderView的背景会有cell的分割线。
主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;
}
解决方案1:
推荐 使用 tag来判断 2个tableView
您可能想查找下面的文章:
- 代码持续更新tableview与用户滑动tableview冲突?
- 很多股票APP,VIP推送功能频繁更新tableview,是如何保证APP流畅度的
- scrollview上加tableview,手势冲突不自然
- iOS中的tableview的cell与headerview重叠了,咋办?
- iOS抽屉式导航栏的侧栏tableVIew不能正确显示数据
- tableview自动滑动到最底部
- tableview侧滑删除的时候,删除最后一行的时候报错。
- TableView表单数据源连接
- IOS:tableView分区头重用问题
- 怎么解决tableViewCell嵌套CollectionViewreloadData时的卡顿?