Надеется, что эти скриншоты помогут объяснить мой вопрос - это как мой uitablecell выглядит как при первой загрузке (обратите внимание на название метку в ячейке):UILabel динамическая высота в UITableViewCell действует беспорядочную
Если я прокручиваю ниже и вернуться, она становится правым (больше не ellipsisized, так, как это должно было быть при первой загрузке):
Я расчетливый динамический labelsize и applyi Это ограничение. Вот соответствующий код (следующий записывается в рубине в рамках проекта rubymotion IOS):
def tableView(tableView, cellForRowAtIndexPath: indexPath)
object = @posts[indexPath.row]
cellIdentifier = "DayCell"
cell = @day_table_view.dequeueReusableCellWithIdentifier(cellIdentifier)
unless cell
cell = PostCellView.alloc.initWithStyle(UITableViewCellStyleDefault, reuseIdentifier: cellIdentifier)
cell.contentView.apply_constraints
end
cell
end
def tableView(tableView,willDisplayCell: cell, forRowAtIndexPath:indexPath)
object = @posts[indexPath.row]
cell.fill(object)
end
post_cell_view.rb метод # заливка
def fill(post)
self.post = post
@title_label.text = post.title
@reason_image_view.setImageWithURL(NSURL.URLWithString(post.reason.icon),
placeholderImage: nil,
completed: lambda{|image,error,cacheType|
# if cacheType == 0
@reason_image_view.alpha = 0
UIView.animateWithDuration(0.25,
animations: lambda{
@reason_image_view.alpha = 1
})
# end
})
expectedTitleLabelSize = @title_label.text.sizeWithFont(@title_label.font, constrainedToSize:[App.window.frame.size.width - 50, Float::MAX], lineBreakMode: NSLineBreakByWordWrapping)
@title_label.addConstraint Teacup::Constraint.new(@title_label, :height).equals(expectedTitleLabelSize.height).nslayoutconstraint
@post_picture_image_view.setImageWithURL(NSURL.URLWithString(post.image.file_medium),
placeholderImage: nil,
completed: lambda{|image,error,cacheType|
# if cacheType == 0
@post_picture_image_view.alpha = 0
UIView.animateWithDuration(0.25,
animations: lambda{
@post_picture_image_view.alpha = 1
})
# end
})
@post_picture_image_view.contentMode = UIViewContentModeScaleAspectFill
if post.cost.blank?
@price_flag_image.alpha = 0
else
@price_flag_image.alpha = 1
@price_label.text = post.cost
end
@location_label.text = post.location.name
@distance_label.text = post.location.distance.to_s
end
Я предполагаю, что этот вопрос, я не являюсь применяя ограничения в нужное время? Пожалуйста, просветите меня гуру stackoverflow!
Мне что-то не хватает. Оба изображения выглядят одинаково для меня. – rdelmar
На первом изображении метка заголовка является эллипсизированной - высота uilabel не устанавливается правильно. На втором изображении вы можете увидеть, что он правильно установлен – bpn
Вы пытались заполнить ячейку в 'tableView (tableView, cellForRowAtIndexPath: indexPath)', а не 'willDisplayCell'? – alxmitch