2016-07-12 4 views
0

Ich habe eine Ansicht mit 1 TableView, die 50% der Bildschirmhöhe und 100% der Bildschirmbreite zugeordnet ist.Ist es möglich, AutoresizingMask zu verwenden, um den prozentualen Anteil zu halten

Ich habe folgenden Code:

tableView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth; 
    //tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

Wenn jedoch ich den Bildschirm/Gerät drehen, Höhe bis 50% der neuen Orientierung nicht ändern. Breite passt sich an 100% an

Wie kann ich auch die Höhe anpassen, wenn es möglich ist?

+1

Sie auf jeden Fall brauchen' UIViewAutoresizingFlexibleHeight', wenn Sie die Höhe ändern möchten. Gibt es einen Grund, warum Sie AutoLayout in diesem Projekt nicht verwenden können? – thelaws

+0

Mein Verständnis von AutoLayout ist dasselbe wie autoresizingMask. Ich bin mir sicher, dass es eigene Probleme haben wird. Da ich autoresizingMask etwas mehr weiß, hatte ich gehofft, es zu verwenden. – GJain

+1

Es wird nicht wirklich funktionieren. Autoresizing-Maske ist nicht stark genug. Verwenden Sie Autoresizing-Einschränkungen. – Sulthan

Antwort

0

Zuerst müssen Sie Frames einrichten; tableView ‚s Superrahmen darf nicht leer sein:

tableView.superview.frame = CGRectMake(0, 0, 320, 480); 

Dann Setup tableView Rahmen und Masken:

CGRect frame = tableView.superview.frame; 
frame.size.width /= 2; 
tableView.frame = frame; 

tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;