Подтвердить что ты не робот

CGRectIntegral, каково его использование?

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

documentation неясно, насколько точно оно используется.

4b9b3361

Ответ 1

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

Как это исправить?

frame = CGRectIntegral(frame);

-OR -

myTextView.frame = CGRectIntegral(myTextView.frame);

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

Ответ 2

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

Установка значения float как кадра для некоторого UIElement, такого как 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. */

Ответ 3

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

Смотрите этот вопрос: UITextField размытый текст

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

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