将 UIVibrancyEffect 应用于 UITableViewCell 中的 UILabel
Apply UIVibrancyEffect to UILabel in UITableViewCell
我的通知中心小部件包含一个 UITableView
并且 UITableViewCell
上有一个 UILabel
我想 'blur'/ 应用 UIVibrancyEffect
至。这是我尝试过的方法,但似乎导致了异常:
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect notificationCenterVibrancyEffect]];
effectView.frame = cell.longStatusLabel.bounds;
__strong UILabel *longStatus = cell.longStatusLabel;
cell.longStatusLabel = effectView;
[effectView.contentView addSubview:longStatus];
[cell addSubview:effectView];
当我运行这段代码时,我的通知中心扩展说它无法加载。
我认为问题在于您将标签设置为等于 UIVisualEffectView
。试试这个。以编程方式创建 UILabel
:
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect notificationCenterVibrancyEffect]];
effectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
UILabel *label = [[UILabel alloc] init];
label.text = @"my label";
label.textColor = [UIColor colorWithWhite:1.0 alpha:0.5f];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
//...
[effectView.contentView addSubview:label];
[cell.contentView addSubview:effectView];
您也应该能够在 Interface Builder 中使用具有模糊和鲜艳效果的视觉效果视图来执行此操作,而不必以编程方式完成。
此外,如果它没有按预期工作,请尝试在调试时设置断点。如果它拒绝加载,请尝试从通知中心删除扩展并重新添加,或者如果您使用的是 iOS 模拟器,请选择其他设备。
我的通知中心小部件包含一个 UITableView
并且 UITableViewCell
上有一个 UILabel
我想 'blur'/ 应用 UIVibrancyEffect
至。这是我尝试过的方法,但似乎导致了异常:
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect notificationCenterVibrancyEffect]];
effectView.frame = cell.longStatusLabel.bounds;
__strong UILabel *longStatus = cell.longStatusLabel;
cell.longStatusLabel = effectView;
[effectView.contentView addSubview:longStatus];
[cell addSubview:effectView];
当我运行这段代码时,我的通知中心扩展说它无法加载。
我认为问题在于您将标签设置为等于 UIVisualEffectView
。试试这个。以编程方式创建 UILabel
:
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect notificationCenterVibrancyEffect]];
effectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
UILabel *label = [[UILabel alloc] init];
label.text = @"my label";
label.textColor = [UIColor colorWithWhite:1.0 alpha:0.5f];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
//...
[effectView.contentView addSubview:label];
[cell.contentView addSubview:effectView];
您也应该能够在 Interface Builder 中使用具有模糊和鲜艳效果的视觉效果视图来执行此操作,而不必以编程方式完成。
此外,如果它没有按预期工作,请尝试在调试时设置断点。如果它拒绝加载,请尝试从通知中心删除扩展并重新添加,或者如果您使用的是 iOS 模拟器,请选择其他设备。