Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
#1

UILabel смена текста каждые 3 секунды - Objective-C

18.07.2014, 11:57. Просмотров 741. Ответов 2
Метки нет (Все метки)

Здравствуйте.
У меня есть таблица, ячейки которой содержат по одному UILabel.
Я пытаюсь научить UILabel менять текст по требованию. Для этого написал вот такой класс:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@interface HSIntervalLabel ()
 
@property (nonatomic) BOOL isFirstTextShowed;
@property (nonatomic) NSString *firstText;
@property (nonatomic) NSString *secondText;
 
@end
 
@implementation HSIntervalLabel
 
- (void)prepare
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeText:) name:NOTIFICATION_INTERVAL_LABEL_SHOULD_CHANGE_TEXT object:nil];
}
 
- (instancetype)init
{
    self = [super init];
    if (self) {
        [self prepare];
    }
    return self;
}
 
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self prepare];
    }
    return self;
}
 
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self prepare];
    }
    return self;
}
 
- (void)setText:(NSString *)firstText beforeText:(NSString *)secondText
{
    self.firstText = firstText;
    self.secondText = secondText;
    self.text = firstText;
    self.isFirstTextShowed = YES;
}
 
- (void)changeText:(NSNotification *)notification
{
    if (self.isFirstTextShowed) {
        self.text = self.secondText;
        self.isFirstTextShowed = NO;
    }
    else {
        self.text = self.firstText;
        self.isFirstTextShowed = YES;
    }
}
 
- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
 
@end
Но текст почему-то не меняется, хотя, если смотреть в дебаггере, то все меняется.
Сами сообщения в NSNotificationCenter посылаются с помощью NSTimer:
Objective-C
1
2
3
dispatch_once(&kOnlyOnce, ^{
        [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(preparePostingNotificationsForIntervalLabel:) userInfo:nil repeats:YES];
    });
Буду очень благоларен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2014, 11:57     UILabel смена текста каждые 3 секунды
Посмотрите здесь:
Objective-C Как перевести секунды в дату?
Кликабельные части текста в UILabel
Пляски вокруг UILabel (как нормально настроить перенос текста?)
Visual Basic .NET Автообновление WebBrowser каждые 3 секунды
JavaScript Уменьшение числа каждые 2 секунды
видеокарта мигает каждые 2-3 секунды
PHP Как выполнить скрипт каждые 3 секунды?
Windows 10 Каждые 40 минут подвисает звук на 3 секунды
Зависание ПК на несколько секунд каждые 1-3 секунды
VBA Каждые 2 секунды ячейка меняет значение
Delphi каждые 3 секунды таймер обращается к другому окну
Каждые три секунды формируется отчет об ошибках Windows 10

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Prorok2323
33 / 125 / 43
Регистрация: 04.12.2013
Сообщений: 548
26.08.2014, 13:04     UILabel смена текста каждые 3 секунды #2
dev.nikor, актуально?
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
30.08.2014, 23:04     UILabel смена текста каждые 3 секунды #3
не в основном потоке посылаете?
Yandex
Объявления
30.08.2014, 23:04     UILabel смена текста каждые 3 секунды
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru