CGRectIntegral какая польза от этого? - PullRequest
31 голосов
/ 02 апреля 2012

Как использовать функцию CGRectIntegral?Я понимаю, что это цель.

Документация не дает точного определения ее точного использования.

Ответы [ 3 ]

83 голосов
/ 02 апреля 2012

CGRectIntegral для преобразования любых десятичных значений в их целочисленные эквиваленты см. изображение может быть вы можете понять enter image description here

Как я могу это исправить?

frame = CGRectIntegral(frame);

-OR-

myTextView.frame = CGRectIntegral(myTextView.frame);

см. для получения дополнительной информацииинформация CGRectIntegral

13 голосов
/ 02 апреля 2012

CGRectIntegral Метод используется для создания целочисленного прямоугольника. Я имею в виду, предположим, что если вы вычисляете фрейм в приложении, вы можете получить значение фрейма в float.

Установка значения с плавающей запятой в качестве фрейма для некоторого элемента UIE, такого как UILabel, сделает текст выглядящим размытым. Чтобы избежать этого, мы используем CGRectIntegral. Пожалуйста, посмотрите на пример ниже,

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

Будет напечатано {0,15}, {17,21}.

Это объяснение находится в заголовочном файле.

/* Expand `rect' to the smallest rect containing it with integral origin and
   size. */
7 голосов
/ 02 апреля 2012

Одним из конкретных способов использования является исправление кадров, которые не совпадают идеально с пикселями на экране.

См. Этот вопрос: Размытый текст UITextField

Если метка илиТекстовое поле имеет рамку, которая не выровнена по пикселям при визуализации на экране, текст будет выглядеть размытым.Это может произойти, если вы вычисляете кадр с использованием деления (например, для центрирования его в родительском представлении).

CGRectIntegral удалит дробную часть кадра, что устранит эту проблему.Однако обратите внимание, что при отображении сетчатки значение кадра .5 выравнивается по пикселям, но CGRectIntgral все равно удалит дробную часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...