Как использовать функцию CGRectIntegral? Я понимаю цель.
documentation неясно, насколько точно оно используется.
Как использовать функцию CGRectIntegral? Я понимаю цель.
documentation неясно, насколько точно оно используется.
CGRectIntegral для преобразования любых десятичных значений в их целочисленные эквиваленты
см. изображение может быть вы можете понять
Как это исправить?
frame = CGRectIntegral(frame);
-OR -
myTextView.frame = CGRectIntegral(myTextView.frame);
см. для получения дополнительной информации о CGRectIntegral
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. */
Одним из конкретных применений является исправление фреймов, которые не идеально выравниваются с экранными пикселями.
Смотрите этот вопрос: UITextField размытый текст
Если метка или текстовое поле имеют фрейм, который не выровнен по пикселям при отображении на экране, текст будет размытым. Это может произойти, если вы вычисляете кадр с помощью деления (например, чтобы центрировать его в родительском представлении).
CGRectIntegral
удалит дробную часть кадра, исправив эту проблему. Однако обратите внимание, что при отображении сетчатки значение кадра .5 выравнивается по пикселям, но CGRectIntgral все равно удаляет дробную часть.