我有一个UITableViewCell
内部UITableView
使用高度为77的自定义单元格。我无法通过UITableView一直滚动,最后一行被切断。
我正在使用此代码为表格视图创建框架。
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
_routeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, screenWidth, screenHeight) style:UITableViewStylePlain];
这是一个显示我的问题的简短video:
有没有人有任何建议我如何正确滚动路线?
似乎没有空间让细胞向上,而不仅仅是切断最后一个细胞。
-(void)configureRouteTableView
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
_routeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, screenWidth, screenHeight - 50) style:UITableViewStylePlain];
_routeTableView.delegate = self;
_routeTableView.dataSource = self;
_routeTableView.hidden = YES;
_routeTableView.separatorColor = [UIColor clearColor];
[_routeTableView setBackgroundColor:[UIColor clearColor]];
[self.contentView addSubview:_routeTableView];
}
答案 0 :(得分:2)
我个人的经历
1)确保滚动内容大小是uitableview单元格大小的倍数
2)确保您的tableview的y坐标加上tableview的高度不超过屏幕。
对于你的情况,我认为它是2号,这会给你带来麻烦。从那以后,
_routeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0,50,screenWidth,screenHeight)样式:UITableViewStylePlain];
50 + screenHeight,表示你的桌面视图的某些部分不在屏幕上。 :)
感谢建议的建议。我不确定为什么我无法使用您的编辑功能。
答案 1 :(得分:2)
我认为您有两种方法可以解决此问题:
1)首先调整UITableView的框架:
_routeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, self.navigationController.navigationBar.frame.size.height, screenWidth, screenHeight - self.navigationController.navigationBar.frame.size.height) style:UITableViewStylePlain];
表示表格视图的高度是屏幕的高度减去导航栏的高度,并在y轴上的导航栏之后开始。
2)给你的UITableView的页脚增加一些高度。 (不推荐)
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 50.0f;
}
另外请确保此委托函数返回实际的单元格高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return yourTableCellHeight;
}
答案 2 :(得分:0)
我需要将框架线更改为:
_routeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, screenWidth, 90) style:UITableViewStylePlain];
答案 3 :(得分:0)
请按以下方法设置tableview单元格高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return height;//77
}
答案 4 :(得分:0)
尝试使用tableview的contentInsets。您可以在IB中设置它。但首先禁用自动布局。
答案 5 :(得分:0)
我使用Autolayout约束来解决这个问题,而不是让iOS做(错误的)事情:
如果您使用Podfile,请安装UIView+Autolayout:
pod 'UIView+Autolayout'
包括UIView-Autolayout.h
#import "UIView-Autolayout.h"
并在viewDidLoad中使用它:
[tableView setTranslatesAutoresizingMaskIntoConstraints:NO];
[tableView pinToSuperviewEdges:JRTViewPinAllEdges inset:0.0];