2017-11-19 3 views
1

Der folgende Code funktioniert hervorragend unter iOS11, um zu erkennen, ob der Benutzer LARGE FONT in seinen Eingabehilfeneinstellungen festgelegt hat.traitCollection.preferredContentSizeCategory.isAccessibilityCategory für iOS 10

Allerdings muss ich dies auch in iOS10 unterstützen. Wie kann ich das erreichen?

Momentan befindet sich der Code wie folgt aussieht:

if #available(iOS 11.0, *) { 
    if traitCollection.preferredContentSizeCategory.isAccessibilityCategory { 
     return UITableViewAutomaticDimension 
    } else { 
     return someSpecificHeight 
    } 
} else { 
    // how to detect is isAccessibilityCategory on non-iOS11 devices? 
    // is there some ugly fallback I don't know about? 
} 
+0

Wenn Ihre Etiketten keine Höhenbeschränkung haben und die Einschränkungen in Ihrer Zelle korrekt eingerichtet sind, werden Ihre Beschriftungen erweitert passen Sie die Größe des Textes an. – EmilioPelaez

Antwort

1

Okay, basierend auf @ Jefflovejapan Antwort, es sieht aus wie ich das tun kann:

let sizeCategory = traitCollection.preferredContentSizeCategory 

     if sizeCategory == .accessibilityMedium 
    || sizeCategory == .accessibilityLarge 
    || sizeCategory == .accessibilityExtraLarge 
    || sizeCategory == .accessibilityExtraExtraLarge 
    || sizeCategory == .accessibilityExtraExtraExtraLarge { 
      return UITableViewAutomaticDimension 
     } else { 
      return someSpecificHeight 
     } 

hässlich, aber ich denke, es funktioniert der Trick ..

ich alle == Vergleiche zu tun haben , denn das scheint der einzige unterstützte Operator in iOS10 zu sein (alle anderen werden anscheinend in iOS11 hinzugefügt)

1

Es looks like.accessibilityMedium die nächste Größe von .extraExtraExtraLarge oben ist, so vielleicht, dass Ihre Schwelle sein könnte.

+0

Danke - siehe Antwort, die ich gerade gepostet habe. Dein Kommentar war sehr hilfreich. – Jeff