我有tableviewcontroller
,当用户点击barButtonItem
时,我希望此tableviewontroller
从左向右滑动,因此它只覆盖了75%的视图。
并且,当用户点击同一barbutton
时,我希望tableview
向后滑动。
我如何以编程方式执行此操作。
-(IBAction)barButtonClicked {
self.leftTableview = [[LeftTableViewController alloc]init];
}
答案 0 :(得分:0)
答案 1 :(得分:0)
-(IBAction)barButtonClicked {
if (self.leftTableview != Nil) {
self.leftTableview = [[UITableView alloc]initWithFrame:CGRectMake(-self.view.frame.size.width * 0.75, 0, -self.view.frame.size.width * 0.75, self.view.frame.size.height)];
[self.view addSubview:self.leftTableview];
//settingDataSource and Delegate - do this after you have tested that everything else is working
[self.leftTableview setDataSource:self];
[self.leftTableview setDelegate:self];
}
[UIView beginAnimations:@"showMenu" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
{
if (self.leftTableview.frame.origin.x < 0) {
[self.leftTableview setFrame:CGRectMake(0, 0, self.leftTableview.frame.size.width, self.leftTableview.frame.size.height)];
} else {
[self.leftTableview setFrame:CGRectMake(-self.leftTableview.frame.size.width, 0, self.leftTableview.frame.size.width, self.leftTableview.frame.size.height)];
}
}
[UIView commitAnimations];
}
我相信你把UITableView与UITableViewController混淆了。在我的代码中,只有空白的tableView,你需要设置委托和数据源
答案 2 :(得分:0)
我希望这会对你有所帮助
#pragma mark - TableView
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
cell.textLabel.text = self.tableData[indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UINavigationController *nvc;
UIViewController *rootVC;
switch (indexPath.row) {
case 0: {
rootVC = [[FirstVC alloc] initWithNibName:@"FirstVC" bundle:nil];
}
break;
case 1: {
rootVC = [[SecondVC alloc] initWithNibName:@"SecondVC" bundle:nil];
}
break;
case 2: {
rootVC = [[ThirdVC alloc] initWithNibName:@"ThirdVC" bundle:nil];
}
break;
default:
break;
}
nvc = [[UINavigationController alloc] initWithRootViewController:rootVC];
[self openContentNavigationController:nvc];
}