gpt4 book ai didi

ios - 如何为 subview 添加活力效果?

转载 作者:行者123 更新时间:2023-11-29 12:21:24 24 4
gpt4 key购买 nike

下面的代码适用于一个简单的例子:

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);
}

标签不会显示在屏幕上,但如果我将它作为一个简单的 subview 添加到 blurView,它就会显示。

[_blurView addSubview:_titleLabel];

我正在使用初始化方法中的代码,这可能是问题的原因吗?

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

if (self) {

// Code...
}

return self;
}

我需要它在初始化方法中,以便与我编写代码的方式保持一致。

Source

编辑 1:

vibrancyView 也应该有它的框架集。

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

原来源代码中的示例不完整

编辑 2:

标签确实出现了,但没有活力效果。

救命!

最佳答案

您错过了活力效果的创建:

UIVibrancyEffect * vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:effect];

稍后你应该将它传递给 vibrancy View :

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


我在 github 上开设了一个类(class)这简化了创建 UIVisualEffectView 所需的所有锅炉代码。

关于ios - 如何为 subview 添加活力效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com