问题描述
- 当UITableView和UIScrollView共存时,表格视图发生不正常偏移,继而消失不见
-
界面如图一所示,上方是一个无限滚动视图,下方是表格视图。两者位置互不影响,如图所示。而且我如果移去滚动视图和分页控件,表格视图依然有问题,但是表格视图的getter方法跟我另外一个页面表格视图的getter方法,位置完全一样,那个页面就没问题...
具体问题:当下滑表格视图后,表格视图就一闪一闪的,然后闪几下就没了。
解决方案
解决方案四:
-(UITableView *)listTableView{
if (!_listTableView) {
_listTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, VIEW_WIDTH, VIEW_HEIGHT - 64 - CGRectGetHeight(_scrollView.bounds)) style:UITableViewStylePlain];
_listTableView.center = CGPointMake(MID_X, CGRectGetMaxY(_scrollView.frame) + CGRectGetMidY(_listTableView.bounds) + 25);
_listTableView.backgroundColor = [UIColor whiteColor];
_listTableView.dataSource =self;
_listTableView.delegate = self;
_listTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
}
return _listTableView;
}
#pragma mark *** UITableViewDelegate,UITableViewDataSource ***
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
// return _sortedKeys.count;//日期
return 7;
}
//设置有多少行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// //获取对应key
// NSString *key = _sortedKeys[section];
// //根据key获取对应数组
// NSArray *matchs = _dataSource[key];
// return matchs.count;
return 5;
}
//配置单元格
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
MatchScheduleCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:KReusableCellWithIdentifier];
if (!cell) {
cell = [[MatchScheduleCustomTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:KReusableCellWithIdentifier];
}
return cell;
}
//设置行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 80;
}
-(void)initializeUserInterface{
// [self.view addSubview:self.scrollView];
// [self.view addSubview:self.pageControl];
_timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(respondsToTimer) userInfo:nil repeats:YES];
_timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:2.0];
[self insertImageToImageView];
[self.view addSubview:self.listTableView];
}
解决方案五:
-(UITableView *)listTableView{
if (!_listTableView) {
_listTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, VIEW_WIDTH, VIEW_HEIGHT - 64 - CGRectGetHeight(_scrollView.bounds)) style:UITableViewStylePlain];
_listTableView.center = CGPointMake(MID_X, CGRectGetMaxY(_scrollView.frame) + CGRectGetMidY(_listTableView.bounds) + 25);
_listTableView.backgroundColor = [UIColor whiteColor];
_listTableView.dataSource =self;
_listTableView.delegate = self;
_listTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
}
return _listTableView;
}
#pragma mark *** UITableViewDelegate,UITableViewDataSource ***
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
// return _sortedKeys.count;//日期
return 7;
}
//设置有多少行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// //获取对应key
// NSString *key = _sortedKeys[section];
// //根据key获取对应数组
// NSArray *matchs = _dataSource[key];
// return matchs.count;
return 5;
}
//配置单元格
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
MatchScheduleCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:KReusableCellWithIdentifier];
if (!cell) {
cell = [[MatchScheduleCustomTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:KReusableCellWithIdentifier];
}
return cell;
}
//设置行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 80;
}
-(void)initializeUserInterface{
// [self.view addSubview:self.scrollView];
// [self.view addSubview:self.pageControl];
_timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(respondsToTimer) userInfo:nil repeats:YES];
_timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:2.0];
[self insertImageToImageView];
[self.view addSubview:self.listTableView];
}
解决方案六:
self.automaticallyAdjustsScrollViewInsets = NO;
最后的结果
这是另外一个页面的表格视图和顶部的UIImageView,方法,位置都是一样的