2015-05-29 9 views
1

ниже код работает отлично для простой:Как добавить эффект вибрации в подвью?

UIVisualEffectView *blurView 

Но, когда я пытаюсь добавить ярлык к нему, которая имеет динамизм эффект она ломается в слезах и ошибок. :(

UIBlurEffect * effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 

    _blurView = [[UIVisualEffectView alloc] initWithEffect:effect]; 
    _blurView.backgroundColor = [UIColor colorWithWhite:0.8 alpha:0.5]; 
    [self addSubview:_blurView]; 

    UIVisualEffectView * vibrancyView = [[UIVisualEffectView alloc] initWithEffect:effect]; 

    [_blurView.contentView addSubview:vibrancyView]; 

    _titleLabel = [[UILabel alloc] init]; 
    _titleLabel.font = [UIFont boldSystemFontOfSize:17.0]; 
    _titleLabel.textColor = [UIColor colorWithWhite:0.1 alpha:0.5]; 
    _titleLabel.text = @"TITLE"; 

    [vibrancyView.contentView addSubview:_titleLabel]; 

Пользовательский набор метод кадров:.

#pragma mark - 

- (void)setFrame:(CGRect)frame 
{ 
    [super setFrame:frame]; 

    _blurView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); 

    _titleLabel.frame = CGRectMake(16, 16, 200, 30); 
} 

Метка не отображается на экране, но это показывает, если добавить его в качестве простого подвид к blurView

[_blurView addSubview:_titleLabel]; 

Я использую код в метод инициализации, это может быть причиной проблемы?

- (instancetype)init 
{ 
    self = [super init]; 

    if (self) { 

     // Code... 
    } 

    return self; 
} 

Мне нужно, чтобы он был в методе инициализации, чтобы соответствовать тому, как я пишу код.

Source

EDIT 1:

vibrancyView должен также иметь свой набор кадров.

vibrancyView.frame = CGRectMake(0, 0, _blurView.frame.size.width, _blurView.frame.size.height); 

Оказывается пример в источник неполным.

EDIT 2:

Ярлык действительно обнаруживается, но это не имеет никакого эффекта динамичности.

Помощь!

ответ

1

Вы пропускаете создание эффекта динамичности:

UIVibrancyEffect * vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:effect]; 

Позже вы должны передать его мнению динамизма:

UIVisualEffectView * vibrancyView = [[UIVisualEffectView alloc] initWithEffect: vibrancyEffect]; 


Я сделал класс доступного на github что simplefy весь код котла, необходимый для создания UIVisualEffectView.

 Смежные вопросы

  • Нет связанных вопросов^_^