2016-08-02 35 views
2

Ich habe ein Sprite Kit-basiertes Spiel, das eine UIView in einer der Szenen verwendet, und ich mache das, damit ich den UITableViewController nutzen kann, um einen Bildschirm mit Spieleinstellungen zu präsentieren. Die Schwierigkeit, auf die ich stoße, ist, dass, wenn ein Benutzer seine Zugangseinstellungen für das iPad-System auf (extra) großen Typ einstellt, der Text innerhalb des UITableView zu groß für die Zellen ist und einfach albern aussieht. Was ich tun möchte, ist gerade deaktivieren Sie den dynamischen Typ in der App, so dass es immer die gleiche Größe in den Zellen anzeigt. Ich habe einen ähnlichen Eintrag gefunden (here), aber die Antwort bietet eine Objectve-C Antwort:Dynamischen Typ in Swift deaktivieren

#import <objc/runtime.h> 

@implementation AppDelegate 

NSString* swizzled_preferredContentSizeCategory(id self, SEL _cmd) 
{ 
    return UIContentSizeCategoryLarge; // Set category you prefer, Large being iOS' default. 
} 

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 
{ 
    Method method = class_getInstanceMethod([UIApplication class], @selector(preferredContentSizeCategory)); 
    method_setImplementation(method, (IMP)swizzled_preferredContentSizeCategory); 

    ... 
} 

Ich brauche dies in Swift zu tun. Was ist der richtige Weg, um dasselbe in Swift in Xcode 7+ zu machen?

+0

Dies ist ein fauler Cop -out für eine Funktion, die für viele Benutzer sehr wichtig, in der Tat notwendig ist. Schneiden Sie keine Ecken wie diese. – Alexander

+1

@AMomchilov Ich stimme zu! Und tatsächlich hat mein Team gerade darüber gesprochen und wir werden dieses Feature in einer zukünftigen Überarbeitung implementieren, aber für den Moment brauchen wir nur die Tabellen, um nicht wackelig zu wirken. In der Tat ist es eine temporäre Pflaster. Danke für deinen Kommentar, tho. – zeeple

+0

@zeeple Tabellen nicht schlecht aussehend war genau der Grund, warum ich den obigen Code implementiert habe. Ich habe auch dafür gesorgt, dass meine Seite ziemlich groß und lesbar ist. –

Antwort

2

Okay, zunächst möchte ich Folgendes sagen: Ich bin froh, dass ich schnell einen Weg gefunden habe, den dynamischen Text der Eingabehilfe-Einstellungen für iOS anzupassen (für die ich den Code in einer Sekunde zeigen werde) Es ist immer noch wichtig, eine Antwort auf die ursprüngliche Frage zu erhalten.

Das heißt, hier ist, was ich getan habe, um den Tabellenansicht Code zu respektieren den größeren Typ, den einige Benutzer benötigen. Es war ein zweistufiger Prozess. Zuerst fügen Sie hinzu:

tableView.estimatedRowHeight = 44.0 
tableView.rowHeight = UITableViewAutomaticDimension 

an die ViewDidLoad-Methode. Dann wird in der cellForRowAtIndexPath Methode, fügen Sie die folgenden Punkte, bevor Sie in die Zelle zurück:

cell.textLabel!.numberOfLines = 0 

Viel Glück, Leute, und bitte eine Antwort auf die ursprüngliche Frage hinzufügen, wenn Sie eine haben :)