В моем приложении IPhone я хочу, чтобы текст в UILabel светился на секунду, а затем исчезал в течение секунды;. Также я хочу повторить этот цикл, скажем, 3 или 4 раза.
Возможно ли это?
В моем приложении IPhone я хочу, чтобы текст в UILabel светился на секунду, а затем исчезал в течение секунды;. Также я хочу повторить этот цикл, скажем, 3 или 4 раза.
Возможно ли это?
Начиная с версии 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
(спасибо комментаторам за указание этого).
Я отправил некоторый пример кода, который подклассифицирует UILabel и позволяет применить свечение и мягкие тени к тексту.
http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/
Да. Используйте beginAnimation... commitAnimation и используйте значение alpha, чтобы скрасить или уменьшить ULabel. Убедитесь, что значение по умолчанию для UILabel alpha начинается с 0,85 и светится до 1,0, а затем уменьшается до 0,75, и когда все будет сделано, вы вернетесь к 0,85.
Существуют и другие способы сделать это, например, иметь другой вид поверх ярлыка, который является серым или черным, и вы используете тот же самый begin... commitAnimation для изменения альфы при этом от 0 до 0,20 или около того.
Существует много способов сделать это с различным качеством. Один из способов - подкласс UILabel и реализовать какой-либо эффект градиента в coregraphics в методе drawRect.
Вы также можете играть с тенью текста (изменить цвет и альфу) и посмотреть, можете ли вы придумать приличное свечение.
Самый простой способ - это сделать прозрачное изображение с подсветкой в фотошопе и поместить его за свой текст, а затем сделать так, как mahboudz предлагает... затухать изображение в и из использования с помощью CoreAnimation.
- (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;
}
Я получаю эффект свечения при использовании этого.
Надеюсь, что это поможет.
Счастливое кодирование:)