我们正在使用 anUITableView
来布局一些带有标签的字段,并且我们得到了一些奇怪的行为。我们有一个名为的类TextFieldView
,它实现UITableViewCell
了 ,并将 anUITextField
和 an添加UILabel
到它的subviews
。然后TextFieldView
通过 table-delegate 将其添加为表格的单元格。我们使用cellForRowAtIndexPath
, heightForRowAtIndexPath
, numberOfRowsInSection
, didSelectRowAtIndexPath
.
问题是,当我们最初加载表格时,所有单元格的高度都是 44。但是当加载表格时,第一个和最后一个单元格框架设置为 45 的高度。同样,每次我们执行table.beginUpdates/table.endUpdates
(on文本更新)第一个和最后一个单元格高度增加 +1。
我们调用 begin/endUpdates 的原因是因为我们也有一个UITextView
which 在我们更改其内容时会扩展。我们已经删除了UITextView
这个,看看这是否与“错误”有关,但事实并非如此。
我们希望有人遇到过类似的问题 - 或者可以发现我们的大脑放屁!- 我们都没有想法:-)
这是我们如何初始化我们的UITableViewCell
:
class TextFieldView < UITableViewCell
....
def init()
super.initWithStyle(UITableViewCellStyleDefault, reuseIdentifier: nil)
self.selectionStyle = UITableViewCellSelectionStyleNone
self.styleClass = 'control'
@focus = UIImageView.alloc.initWithImage(UIImage.imageNamed('focus.png'))
frame = self.frame
@focus.frame = [[frame.size.width - 13, 8], [13, 28]]
@focus.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
@focus.hidden = true
self.contentView.addSubview(@focus)
size = self.frame.size # 44 x 320
self.styleClass = 'control text-field'
@label = self.create_label([[10, 10], [140, 24]])
self.contentView.addSubview(@label)
@text_field = UITextField.alloc.initWithFrame([[160, 11], [size.width - 160 - 20, 24]])
@text_field.adjustsFontSizeToFitWidth = true
@text_field.minimumFontSize = 13
@text_field.autoresizingMask = UIViewAutoresizingFlexibleWidth
@text_field.borderStyle = UITextBorderStyleNone
@text_field.backgroundColor = UIColor.redColor
@text_field.font = UIFont.boldSystemFontOfSize(17)
@text_field.styleClass = 'control'
self.contentView.addSubview(@text_field)
#@text_field.delegate = is handle by the view controller
self
end