UITextView отказывается менять свой цвет - PullRequest
0 голосов
/ 17 марта 2010

в некоторых случаях вещи, которые вы ожидаете решить за секунду, становятся приключением на всю жизнь. Это один из таких случаев:)

Все, что я хотел сделать, это просто изменить цвет текста одного из моих UITextViews. Пока что попробовал:

UIColor *myColor = [UIColor colorWithHue:38 saturation:98 brightness:100 alpha:1.0];
[myTextView setTextColor:myColor];

OR

UIColor *myColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"colorImage.png"]];
[myTextView setTextColor:myColor]; 

Кажется, что оба работают нормально для UILabels, но не работают для элементов UITextView. Когда я пытаюсь [UIColor colorWithHue ..., я получаю только красноватый цвет, независимо от того, какие значения я выбираю (кроме значений для черного и белого. Они работают). ColorWithPatternImage не изменяет textColor вообще.

Странно, не правда ли? Я очевидно должен что-то упустить. Помощь очень ценится. Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 17 марта 2010

Как сказал Ной, ожидается, что значения будут в диапазоне [0, 1]. Попробуйте вместо этого и при необходимости измените:

UIColor *myColor = [UIColor colorWithHue:0.38 saturation:0.98 brightness:1.0 alpha:1.0];
[myTextView setTextColor:myColor];
3 голосов
/ 17 марта 2010

+colorWithHue:saturation:brightness:alpha:, как и другие методы UIColor, принимает значения от 0 до 1, а не от 0 до 100. Я бы не ожидал, что +colorWithPatternImage: вообще будет работать с рендерингом текста, если только вы не хотите создавать свое собственное ядро Графический код для рисования.

1 голос
/ 28 июля 2011

Если вы привыкли к цветовым числам вашей графической программы и хотите пожертвовать небольшой эффективностью для удобства чтения, вы можете выполнить преобразование в операторах присваивания, например colorWithHue: (112 / 360.0) ниже:

    UIColor *color1 = [UIColor colorWithHue:(112/360.0) saturation:.63 brightness:.73 alpha:1];//green
    UIColor *color2 = [UIColor colorWithHue:(70/360.0) saturation:.79 brightness:.84 alpha:1];//lime
    UIColor *color3 = [UIColor  colorWithHue:(49/360.0) saturation:.77 brightness:.91 alpha:1];//yellow

Числа оттенков можно выразить в виде дробей, чтобы преобразовать их из числа оттенков фейерверка, насыщенности, яркости в шкалу 0-1 UIColor.Это особенно полезно для оттенка, для которого Fireworks использует 360-градусную шкалу.Насыщенность, яркость и альфа делятся на 100 в Fireworks, поэтому преобразование просто.В процессе разработки фракция Hue соединяет способ, которым моя графическая программа представляет цвет HSB, и то, что требует Objective-C.Числа могут быть легко изменены.Для релизной версии я мог бы заменить .54 на color1's 112/360.

0 голосов
/ 18 марта 2010

Хорошо, мне удалось заставить его работать. Спасибо за вашу помощь.

На случай, если у кого-то возникнут проблемы со значением оттенка в градусах. Разделите его на 360, прежде чем использовать в XCode.

...