Подтвердить что ты не робот

Эффект свечения текста IPhone

В моем приложении IPhone я хочу, чтобы текст в UILabel светился на секунду, а затем исчезал в течение секунды;. Также я хочу повторить этот цикл, скажем, 3 или 4 раза.

Возможно ли это?

4b9b3361

Ответ 1

Начиная с версии 3.2, вы поддерживаете прямую поддержку теней в SDK.

label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);

Играйте с параметрами:

label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;

И чтобы избежать теневого обрезания с помощью метки bouds:

label.layer.masksToBounds = NO;

Не забывайте

#include <Quartzcore/Quartzcore.h>

и ссылку на рамки QuartzCore или CoreGraphics (спасибо комментаторам за указание этого).

Ответ 3

Да. Используйте beginAnimation... commitAnimation и используйте значение alpha, чтобы скрасить или уменьшить ULabel. Убедитесь, что значение по умолчанию для UILabel alpha начинается с 0,85 и светится до 1,0, а затем уменьшается до 0,75, и когда все будет сделано, вы вернетесь к 0,85.

Существуют и другие способы сделать это, например, иметь другой вид поверх ярлыка, который является серым или черным, и вы используете тот же самый begin... commitAnimation для изменения альфы при этом от 0 до 0,20 или около того.

Ответ 4

Существует много способов сделать это с различным качеством. Один из способов - подкласс UILabel и реализовать какой-либо эффект градиента в coregraphics в методе drawRect.

Вы также можете играть с тенью текста (изменить цвет и альфу) и посмотреть, можете ли вы придумать приличное свечение.

Самый простой способ - это сделать прозрачное изображение с подсветкой в ​​фотошопе и поместить его за свой текст, а затем сделать так, как mahboudz предлагает... затухать изображение в и из использования с помощью CoreAnimation.

Ответ 5

- (UILabel *) setUpGlowLabelWithFrame: (CGRect) frame fontSize: (int)fontSize {
        UILabel* label = [[UILabel alloc] initWithFrame:frame];
        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont boldSystemFontOfSize:fontSize];
        label.textColor = [UIColor whiteColor];
        label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
        label.textAlignment = UITextAlignmentCenter;
        label.layer.shadowColor = [label.textColor CGColor];
        label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
        label.layer.masksToBounds = NO;

    label.layer.shadowRadius = 0.5f;
    label.layer.shadowOpacity = 0.95;
    label.numberOfLines = 2;
    label.tag = 20;

    return label;
}

Я получаю эффект свечения при использовании этого.

Надеюсь, что это поможет.

Счастливое кодирование:)