2012-04-02 6 views

Odpowiedz

80

CGRectIntegral konwertować żadnych wartości dziesiętnych do ich odpowiedników całkowitych
zobaczyć obraz może być można zrozumieć enter image description here

Jak mogę to naprawić?

frame = CGRectIntegral(frame); 

LUB

myTextView.frame = CGRectIntegral(myTextView.frame); 

zobaczyć for more information of CGRectIntegral

+1

Obraz po lewej jest trochę rozmyta, ponieważ ramka jest ustawiona na granicy pikseli. Tak więc pochodzenie to około 20,5, 8,5. CGRectIntegral przyciąga go z powrotem do 20, 8. – ariopolis

+3

Jeśli chcesz, aby zamazane obrazy były podświetlone na fioletowo w symulatorze iOS, wybierz Debugowanie> Niewspółosiowe obrazy. W ten sposób nie będziesz musiał mrużyć oczu w każdym miejscu, aby dowiedzieć się, które rzeczy są niewyraźne. – JoJo

+0

Należy dodać: CGRectIntegral służy do wypełniania/rysowania buforów pikseli. Obrysowane kształty są wyśrodkowane wokół swoich współrzędnych, więc w rzeczywistości mogą być potrzebne współrzędne nieintegralne (na przykład 0,5 na 1x ekrany), aby były wyraźne. Zobacz tutaj, aby uzyskać bardziej szczegółowe wyjaśnienie: http://orangejuiceliberationfront.com/are-your-rectangles-blurry-pale-and-have-rounded-corners/ – uliwitness

7

Jeden szczególności wykorzystanie jest ustalenie ram, które nie dostosują się doskonale na ekranie pikseli.

Zobacz na to pytanie: UITextField blurred text

Jeśli etykieta lub textfield ma ramę, która nie jest piksel wyrównany przy wytapianiu do ekranu, tekst pojawi się niewyraźne. Może się to zdarzyć, jeśli obliczysz ramkę za pomocą podziału (na przykład, aby wyśrodkować ją w widoku nadrzędnym).

CGRectIntegral usunie ułamkową część ramki, usuwając ten problem. Zauważ jednak, że przy wyświetlaniu siatkówki wartość ramki .5 jest wyrównana do piksela, ale CGRectIntgral nadal usuwa część ułamkową.

13

CGRectIntegral Metoda służy do tworzenia liczb całkowitych rect. Mam na myśli przypuszczenie, że jeśli obliczysz klatkę w aplikacji, możesz uzyskać wartość klatek w float.

Ustawienie wartości pływającej jako klatki dla niektórych UIElement takich jak UILabel spowodowałoby rozmycie tekstu. Aby tego uniknąć, używamy CGRectIntegral .please zapoznać się z poniższym przykładzie

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

To będzie drukować {0,15}, {17,21}.

To wyjaśnienie znajduje się w pliku nagłówkowym.

/* Expand `rect' to the smallest rect containing it with integral origin and 
    size. */ 
Powiązane problemy