Мигающий UILabel Cocoa Touch - PullRequest
0 голосов
/ 04 мая 2011

Можно ли сделать мигающий UILabel в Cocoa Touch или мне нужен для этого UIview с Core Animation?

Ответы [ 3 ]

2 голосов
/ 04 мая 2011

Примите совет Мартина, а затем посмотрите на NSTimer , чтобы справиться с действиями "моргания".

+ scheduleTimerWithTimeInterval: цель: селектор: userInfo: повторы:

1 голос
/ 04 мая 2011

Все UIViews (включая UILabel) имеют свойство hidden, которое можно включать и выключать, чтобы оно "мигало".

0 голосов
/ 04 мая 2011

Ради интереса я решил написать этот подкласс NSOperation.

Выдержка из BlinkingLabelOperation.m

- (void)main {
    SEL update = @selector(updateLabel);
    [self setThreadPriority:0.0];

    while (![self isCancelled]) {
        if (label_ == nil)
            break;

        [NSThread sleepForTimeInterval:interval_];
        [self performSelectorOnMainThread:update withObject:nil waitUntilDone:YES];
    }
}

- (void)updateLabel {
    BlinkingColors *currentColors = nil;

    if (mode_)
        currentColors = blinkColors_;
    else
        currentColors = normalColors_;

    [label_ setTextColor:currentColors.textColor];
    [label_ setBackgroundColor:currentColors.backgroundColor];

    mode_ = !mode_;
}

Пример кода контроллера вида:

- (void)viewDidLoad
{
    [super viewDidLoad];

    BlinkingColors *blinkColors = [[BlinkingColors alloc] initWithBackgroundColor:[UIColor whiteColor]
                                                                        textColor:[UIColor redColor]];

    BlinkingLabelOperation *blinkingOp = [[BlinkingLabelOperation alloc] initWithLabel:clickLabel freq:1.0 blinkColors:blinkColors];

    // put the operation on a background thread
    NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
    [queue addOperation:blinkingOp];

    [blinkColors release];
}

Полный список вы найдете здесь . Пожалуйста, оставьте комментарии и дайте мне знать, что вы думаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...