Die automatische Größenunterklasse UITableViewCell Subviews
-
01-10-2019 - |
Frage
Ich habe subclassed UITableViewCell und einige Subviews über die layoutSubviews Methode einbezogen. Alle Ansichten werden zugeordnet und in den initWithStyle Verfahren eingeleitet, und die Rahmen werden in den layoutSubviews Verfahren eingestellt, etwa so:
initWithStyle:... {
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero];
myLabel.someProperties = Configured;
[self.contentView addSubview:myLabel];
layoutSubviews {
CGRect labelRect = CGRectMake(10.0f, 5.0f, 35.0f, 180.0f);
myLabel.frame = labelRect;
Zur Einstellung der shouldAutoRotateOrientation auf YES in dem Viewcontroller dreht die Navigation, Tableview und UIToolbar angemessen, aber der Inhalt des tableViewCells nicht bewegen. Ich bin mir nicht klar darüber, wo oder was so weit wie AutoResizingMasks hinzuzufügen. Die Kombinationen habe ich versucht, so weit habe nichts getan. Kann mir jemand eine Hand?
Danke!
Lösung
Die Antwort, die ich habe kommen mit ist an die Bedingung zu verwenden Codierung Ort Ansicht Rahmen, abhängig von der Orientierung, in der layoutSubviews Methode
-(void)layoutSubviews {
//For portrait mode (NOT PORTRAIT UPSIDE DOWN)
if ( UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation]) ) {
CGRect portraitFrame = CGRectMake(Portrait Frame Coordinates);
myLabel.frame = portraitFrame;
} else {
//For landscape modes
CGRect landscapeFrame = CGRectMake(landscape frame coordinates);
myLabel.frame = landscapeFrame;
}
}
Scheint zusammen gehackt, aber es funktioniert in Unterklasse UITableViewCells