UITableViewCell宽度未根据ios设备类型动态调整
我的tableview单元格完全是以编程方式创建的(我正在尝试学习如何从头开始构建一个应用程序,而不使用故事板),单元格的宽度越来越乱 这是iPhone 6 Plus手机的屏幕截图。我试图设置单元格,使单元格(self.view)中的UIView自动调整,以填充整个屏幕。我不知道为什么宽度保持不变。如有任何建议,将不胜感激UITableViewCell宽度未根据ios设备类型动态调整,ios,objective-c,ios-autolayout,uitableview,Ios,Objective C,Ios Autolayout,Uitableview,我的tableview单元格完全是以编程方式创建的(我正在尝试学习如何从头开始构建一个应用程序,而不使用故事板),单元格的宽度越来越乱 这是iPhone 6 Plus手机的屏幕截图。我试图设置单元格,使单元格(self.view)中的UIView自动调整,以填充整个屏幕。我不知道为什么宽度保持不变。如有任何建议,将不胜感激 -(instancetype)initWithTweet:(PCRTweet *)tweet reuseIdentifier:(NSString *)reuseIdentif
-(instancetype)initWithTweet:(PCRTweet *)tweet reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super init];
if (self) {
_tweet = tweet;
reuse = reuseIdentifier;
CGSize cellSize = self.contentView.frame.size;
CGRect backgroundView = CGRectMake(10.f, 5.f, (cellSize.width-20.f), (cellSize.height + 90.f));
self.view = [[UIView alloc] initWithFrame:backgroundView];
self.view.backgroundColor = [UIColor whiteColor];
self.view.layer.cornerRadius = 8;
self.view.layer.masksToBounds = YES;
self.view.layer.borderWidth = 1.0f;
self.view.layer.borderColor = background_color_gray.CGColor;
self.view.layer.masksToBounds = NO;
[self.contentView addSubview:self.view];
CGRect picView = CGRectMake(0.f, 0.f, 65.f, 65.f);
self.contentView.backgroundColor = background_color_gray;
}
return self;
}
请阅读以下检查表上的要点,以确保你做得很好: -[]您是否检查过您的内容视图是否在动态变化 -[]您是否尝试过以编程方式设置约束 -[]尝试在最大视图上使用约束:将自动调整相对视图
除此之外,您还可以为您的框架自动调整大小。请阅读以下检查表中的要点,以确保您能够正确地进行调整: -[]您是否检查过您的内容视图是否在动态变化 -[]您是否尝试过以编程方式设置约束 -[]尝试在最大视图上使用约束:将自动调整相对视图
除此之外,您还可以为您的框架自动调整大小。您可以在table view类中尝试这两种UITableView委托方法 动态高度
#pragma mark - UITableView Delegates
-(CGFloat)tableView:(UITableView )tableView estimatedHeightForRowAtIndexPath:(NSIndexPath )indexPath {
return 44.0;
}
-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
return UITableViewAutomaticDimension;
}
宽度(获取视图控制器宽度和背景视图)
您可以在表视图类中尝试这两种UITableView委托方法 动态高度
#pragma mark - UITableView Delegates
-(CGFloat)tableView:(UITableView )tableView estimatedHeightForRowAtIndexPath:(NSIndexPath )indexPath {
return 44.0;
}
-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {
return UITableViewAutomaticDimension;
}
宽度(获取视图控制器宽度和背景视图)
尝试对视图使用自动调整大小
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth;
尝试对视图使用自动调整大小
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth;
是否对tableview使用约束?使用self.view.frame.size.width-20.f CGRect backgroundView=CGRectMake(10.f,5.f,(self.view.frame.size.width-20.f),(cellSize.height+90.f));我建议您在LayourSubview中修改框架或使用约束。您在tableview上使用约束吗?使用self.view.frame.size.width-20.f CGRect backgroundView=CGRectMake(10.f,5.f,(self.view.frame.size.width-20.f),(cellSize.height+90.f));我建议您修改LayourSubview中的框架或使用constraint。如何检查contentview是否正在动态更改?因为您没有使用storyboard+约束,所以可以尝试简单地打印框架坐标和尺寸。。有点老套,但值得一试。当我记录尺寸时,不管设备类型如何,宽度都显示为320,这意味着它不会动态变化。在此之前,您的容器视图如何显示在屏幕上?你能给我看看吗?如果您的容器视图应该与iPhone的屏幕相同,您可以参考此()了解屏幕大小。我不确定您所指的容器视图是什么。这就是它加载到6+时的样子。白色视图应该延伸到外部边界。如何检查contentview是否在动态变化?因为您没有使用storyboard+约束,所以可以尝试简单地打印帧坐标和尺寸。。有点老套,但值得一试。当我记录尺寸时,不管设备类型如何,宽度都显示为320,这意味着它不会动态变化。在此之前,您的容器视图如何显示在屏幕上?你能给我看看吗?如果您的容器视图应该与iPhone的屏幕相同,您可以参考此()了解屏幕大小。我不确定您所指的容器视图是什么。这就是它加载到6+时的样子。白色视图应该延伸到外部边界。那没用。这个问题与宽度而不是高度有关。我尝试添加CGSize cellSize=self.contentView.superview.frame.size;但这并没有改变任何没有帮助的事情。这个问题与宽度而不是高度有关。我尝试添加CGSize cellSize=self.contentView.superview.frame.size;但这并没有改变什么