侧栏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;
}
Adalah disyorkan untuk menggunakan tag untuk menilai 2 tableViews