вопрос об использовании TTLabel

#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 лучше.