iOS 6 自定义分组 UITableViewCell 大小不正确
Posted
技术标签:
【中文标题】iOS 6 自定义分组 UITableViewCell 大小不正确【英文标题】:iOS 6 custom grouped UITableViewCell incorrect size 【发布时间】:2014-03-10 09:39:38 【问题描述】:我创建了一个包含UITextField
的UITableViewCell
子类。但是,当我在 ios 6 中将该单元格添加到我的分组表格视图中时,该单元格会扩展到表格视图边缘。
这是自定义单元格的代码。
#import "ActivityNameEditCell.h"
@implementation ActivityNameEditCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
self.textField = [[UITextField alloc] init];
[self addSubview:self.textField];
return self;
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
[super setSelected:selected animated:animated];
// Configure the view for the selected state
- (void)layoutSubviews
self.textField.frame = CGRectMake(self.contentView.frame.origin.x + 10, 0, self.frame.size.width - self.contentView.frame.origin.x - 10, self.frame.size.height);
@end
同样的单元格类在 iOS 7 中的布局正确
有什么明显的地方我做错了吗?如何修复 iOS 6 中的单元格?
【问题讨论】:
我认为CGRectMake
中的self.contentView.frame.origin.x
会导致iOS6出现问题
【参考方案1】:
我只是忘记在我的layoutSubviews
实现中调用[super layoutSubviews]
。噗……
【讨论】:
【参考方案2】:原因是你的类文件中的自定义布局
- (void)layoutSubviews
self.textField.frame = CGRectMake(self.contentView.frame.origin.x + 10, 0, self.frame.size.width - self.contentView.frame.origin.x - 10, self.frame.size.height);
这里self.contentView.frame....
和IOS7比较不同。
查看我的ANSWER here 了解更多信息
【讨论】:
以上是关于iOS 6 自定义分组 UITableViewCell 大小不正确的主要内容,如果未能解决你的问题,请参考以下文章
HadoopHadoop MR 自定义分组 Partition机制
iOS:Xcode 似乎在 XIB 文件名中插入了一个额外的空格,导致“无法加载 XIB 文件”问题
自定义 UITableViewCell 不会在 setNeedsDisplay 上重绘
一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现
Android Gradle 插件Gradle 依赖管理 ③ ( build.gradle#dependencies 依赖分组 | configurations 自定义依赖分组 )