#ios #three20
#iOS #three20
Вопрос:
Я нахожу TTLabel в Three20, и, на мой взгляд, это тот, который похож на UILabel.Однако TTLabel имеет только два свойства: текст и шрифт. Как насчет textColor? Я добавляю TTLable в представление, и код выглядит так
TTLabel *_ttLabel = [[TTLabel alloc] initWithText:@"ttlabel"];
_ttLabel.frame = CGRectMake(10, 50, 50, 50);
_ttLabel.backgroundColor = [UIColor whiteColor];
[self.view addSubview:_ttLabel];
TT_RELEASE_SAFELY(_ttLabel);
Тогда, на мой взгляд, я просто нахожу белый прямоугольник.
Итак, я хочу знать, для чего используется TTLabel? И как я могу использовать его для отображения информации точно так же, как UILabel.
(Или, может быть, я совершенно не прав: ttlaelэто абстрактный класс?)
Спасибо
Ответ №1:
TTLabel
является стилизованной меткой. Итак, свойства textColor нет, потому что вы установили его как часть своей строки (точно так же, как обычный HTML).
Комментарии:
1. ну, я создаю метку следующим образом: _ttLabel = [[TTLabel alloc] initWithText:@»<b> ttlabel</b>»]; это все еще черный прямоугольник.
Ответ №2:
если вы используете TTLabel, должно быть установлено свойство style.
Ответ №3:
Я также столкнулся с проблемой, похожей на вашу. Я выбрал TTLabel, поскольку вы можете отформатировать его с помощью style
свойства TTView, но был разочарован, когда обнаружил, что, похоже, не могу вывести текст.
Мой обходной путь к этой проблеме заключался в том, чтобы иметь TTView для хранения стиля, а затем использовать стандартную UILabel для любого текстового содержимого, которое вы, возможно, захотите иметь. Ограничение этого подхода заключается в том, что ваш стиль не может динамически изменять размер, чтобы соответствовать возможному значению большого текста. У меня это сработало, поскольку я использую для этого то же самое, что facebook для подсчета уведомлений (этот красный кружок с цифрой на нем).
кстати, вот код:
TTStyle *style =
[TTShapeStyle styleWithShape:[TTRoundedRectangleShape shapeWithRadius:TT_ROUNDED]
next:
[TTInsetStyle styleWithInset:UIEdgeInsetsMake(1.5, 1.5, 1.5, 1.5)
next:
[TTShadowStyle styleWithColor:RGBACOLOR(0,0,0,0.8) blur:3 offset:CGSizeMake(0, 5) next:
[TTReflectiveFillStyle styleWithColor:[UIColor redColor] next:
[TTInsetStyle styleWithInset:UIEdgeInsetsMake(-1.5, -1.5, -1.5, -1.5) next:
[TTSolidBorderStyle styleWithColor:[UIColor whiteColor] width:3 next:nil]]]]]];
и:
TTView* myView = [[[TTView alloc] initWithFrame:CGRectMake(220, 360, 40,40)] autorelease];
myView.backgroundColor = [UIColor clearColor];
myView.style = style;
UILabel* badge = [[[UILabel alloc] initWithFrame:CGRectMake(220, 355, 40,40)]autorelease];
badge.text = @"1";
badge.textColor = [UIColor whiteColor];
badge.textAlignment = UITextAlignmentCenter;
badge.backgroundColor = [UIColor clearColor];
badge.font = [UIFont boldSystemFontOfSize:17];
[self.view addSubview:myView];
[self.view addSubview:badge];
Комментарии:
1. Я думаю, что TTStyledTextLabel лучше.