2012-04-02 10 views

Antwort

80

CGRectIntegral ihrer ganzzahligen Äquivalente keine Dezimalzahlen konvertieren
Bild zu sehen sein können Sie enter image description here

Wie verstehen kann ich es beheben?

frame = CGRectIntegral(frame); 

-ODER-

myTextView.frame = CGRectIntegral(myTextView.frame); 

sehen diese for more information of CGRectIntegral

+1

Das Bild auf der linken Seite ist etwas verschwommen, da der Rahmen auf eine Pixelgrenze gesetzt ist. Der Ursprung ist also etwa 20,5, 8,5. CGRectIntegral schnappt es zurück auf 20, 8. – ariopolis

+3

Wenn Sie möchten, dass unscharfe Bilder im iOS-Simulator violett dargestellt werden, wählen Sie "Debug> Falsche Farben". Auf diese Weise müssen Sie nicht überall hin und her schielen, um herauszufinden, welche Dinge verschwommen sind. – JoJo

+0

Es ist wichtig hinzuzufügen: CGRectIntegral ist zum Füllen/Zeichnen von Pixelpuffern. Gestrichene Formen sind um ihre Koordinaten herum zentriert, so dass Sie möglicherweise nicht ganzzahlige (z. B. 0,5 auf 1x Bildschirmen) Koordinaten benötigen, um sie knackig erscheinen zu lassen. Hier finden Sie eine detailliertere Erklärung: http://orangejuiceliberationfront.com/are-your-rectangles-blurry-pale-and-have-rounded-corners/ – uliwitness

7

Eine besondere Verwendung Rahmen zu befestigen ist, die nicht perfekt mit Pixel auf dem Bildschirm Sie auszurichten.

diese Frage Siehe: UITextField blurred text

Wenn ein Label oder Textfeld einen Rahmen hat, der nicht pixelausgerichtet ist, wenn auf dem Bildschirm wiedergegeben, wird der Text unscharf erscheinen. Dies kann passieren, wenn Sie den Rahmen mithilfe der Division berechnen (z. B. um ihn in einer übergeordneten Ansicht zu zentrieren).

CGRectIntegral wird den Bruchteil des Rahmens entfernen, dieses Problem behebend. Beachten Sie jedoch, dass bei Retina-Displays ein Bildwert von .5 Pixel ausgerichtet ist, aber CGRectIntgral wird immer noch den Nachkommaanteil entfernen.

13

CGRectIntegral Methode wird verwendet, um Ganzzahl-Rect zu erstellen. Ich nehme an, wenn Sie Frame in App berechnen, können Sie Frames Wert in Float erhalten.

Setzen float Wert als Frame zu einigen UIElement wie UILabel würde den Text Unschärfe machen. Um zu vermeiden, dass verwenden wir CGRectIntegral .Please Blick auf das Beispiel unten,

NSLog(@"%@",NSStringFromCGRect( CGRectIntegral(CGRectMake(0, 15.6, 16.1, 20.2)))); 

Dieser druckt, {0,15}, {17,21}.

Diese Erklärung finden Sie in der Header-Datei.

/* Expand `rect' to the smallest rect containing it with integral origin and 
    size. */ 
Verwandte Themen