Diese Frage ist w.r.t xib und alten Stil der benutzerdefinierten CellView
in UITableView
. Ich habe autolayouts
in meinen Ansichten.Unteransicht der dynamischen Höhe in UITableViewCell
Ich habe eine DynamicSubView
(dynamische Höhe) des Typs UIView
, die ich in UITableViewCell
wiederverwenden möchte. Dafür habe ich zwei Dinge versucht,
DynamicSubview
als[cell.contentView addSubview:myDynamicView]
- hinzugefügt Hinzufügen einer
UIView
innerhalbcell.xib
‚s mit content Einschränkung0-0-0-0
auf allenLeft-Top-Right-Bottom
. Und eine Höhe wieNSLayoutConstraint
, die ich & während der Laufzeit ändern. Und setzteidentity inspector
dieser Ansicht aufDynamicSubview
.
In MyCell.m
Klasse, habe ich ein Objekt der Klasse DynamicSubView
in awakeFromNib
& in layoutSubView
Methode erstellt hinzugefügt Ich Berechnung dynamische Höhe des DynamicSubView
.
Ich habe versucht, Höhe bezogenen Code in heightForRowAtIndexPath
, aber es geht in der Endlosschleife für das erste Mal, wenn Tabelle lädt.
Das Problem ist, dass die Zellen überlappen. Sollte ich ein Array von Höhenwerten erstellen und neu laden? Jede bessere Lösung, um die Zelle wieder mit der richtigen Höhe nachzuladen.
Code MyCell
Klasse:
- (void)awakeFromNib
{
[super awakeFromNib];
self.myDynamicView = (DynamicSubView *)self.myContainerView;
[self.myDynamicView setUpView:YES];
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self.myDynamicView doSomething];
self.c_height.constant = [self.myDynamicView getHeightOfDynamicSubview];
//CGRect cellFrame = self.contentView.frame;
//self.contentView.frame = CGRectMake(cellFrame.origin.x, cellFrame.origin.y, cellFrame.size.width, self.c_height.constant);
self.cellHeight = self.c_height.constant;
}
Höhe hängt von? einige string einige bild was? –