【发布时间】:2014-03-04 15:26:44
【问题描述】:
我在一个视图控制器中有两个表视图。 一个在界面生成器中,另一个是我使用 viewDidLoad() 方法中的以下代码动态创建的。
// Creating the view for placing the dynamic tableview
-(UIView *) createAndAddMenuView :(float) viewHeight
{
UIView *myView = [[UIView alloc] init];
myView.backgroundColor = [UIColor blueColor];
CGRect coord = myView.frame;
coord.origin.x = -255;
coord.origin.y = 0;
coord.size.width = 255;
coord.size.height = viewHeight;
[myView setFrame:coord];
return myView;
}
-(void) addMenuItemsTable{
UITableView *dynamicTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 255, self.navigationController.view.frame.size.height) style:UITableViewStylePlain];
dynamicTable.delegate=self;
dynamicTable.dataSource=self;
dynamicTable.tag = 20;
//[dynamicTable reloadData];
[menuView addSubview:dynamicTable];
}
这两个表视图都将委托和数据源设置为 self。第二个动态表格视图被添加到视图中,并放置在左侧隐藏侧,x = -255。 当我点击导航栏中的按钮时,我正在将“menuView”视图移动到屏幕上,而另一个静态 tableview 就像 Facebook 应用程序一样移出屏幕。
我正在使用此代码来回移动 menuView。
-(void) toggleMainView :(UITableView *) mytableView withMenuView : (UIView * )menuView{
NSLog(@"TAG %d",mytableView.tag);
CGRect destination = mytableView.frame;
NSLog(@"XX %f",destination.origin.x);
if (destination.origin.x > 0) {
destination.origin.x = 0;
} else {
destination.origin.x += 255;
}
NSLog(@"ORG X = %f", destination.origin.x );
[UIView animateWithDuration:0.25 animations:^{
[self showMenu:menuView];
mytableView.frame = destination;
} completion:^(BOOL finished) {
mytableView.userInteractionEnabled = !(destination.origin.x > 0);
}];
}
-(void)showMenu :(UIView *)menuView{
CGRect coord = menuView.frame;
NSLog(@"Width = %f, x = %f",coord.size.width, coord.origin.x);
if(coord.origin.x < 0){
coord.origin.x = 0;
}else{
coord.origin.x = -255;
}
[menuView setFrame:coord];
}
但是当我没有设置第二个 tableview 数据源时,只有这段代码在工作。 我不知道为什么会这样。
即。当我注释掉这一行时
dynamicTable.dataSource=self;
只有当我单击按钮时,第一个 tableview 才会移出屏幕。 所有这些时候,动态的都会在屏幕上来回移动。 当 DS 没有被注释时,第一个(静态表格视图)将不会移动,而第二个(动态表格视图)将移动。
这是我的第一个 iPhone 应用程序。
【问题讨论】:
-
请详细说明“但是当我没有设置第二个 tableview 数据源时,只有这个代码在工作”
-
@mackworth :- 我已经编辑了帖子以添加更多解释
-
@Vipin 你的解释不够详细。请添加完整的源代码或尝试更好地解释您的问题。
-
您的问题解决了吗
-
@Charan Giri :- 不,请帮忙。我陷入了困境。