你怎么变黑一个观点,如果它被禁用/高亮,最好不使用任何额外的看法?
通过查看我的意思是一个UIView
,其所有的孩子。 我想实现一个残疾人同样的效果/高亮UIButton
。
不要假设的观点是完全不透明的。
你怎么变黑一个观点,如果它被禁用/高亮,最好不使用任何额外的看法?
通过查看我的意思是一个UIView
,其所有的孩子。 我想实现一个残疾人同样的效果/高亮UIButton
。
不要假设的观点是完全不透明的。
什么我目前正在播放:
_highlightLayer
)。 这是类似的办法了“阿尔法黑色视图”。 _highlightLayer
与原始视图的非不透明图像。 _highlightLayer
到视图的层。 仅视图的非透明像素就变黑。
代码:
- (void)highlight
{
// Black layer with opacity
_highlightLayer = [CALayer layer];
_highlightLayer.frame = CGRectMake(0, 0, self.layer.bounds.size.width, self.layer.bounds.size.height);
_highlightLayer.backgroundColor = [UIColor blackColor].CGColor;
_highlightLayer.opacity = 0.5;
// Create an image from the view
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *maskImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Create a mask layer for the black layer
CALayer *maskLayer = [CALayer layer];
maskLayer.contents = (__bridge id) maskImage.CGImage;
maskLayer.frame = _highlightLayer.frame;
_highlightLayer.mask = maskLayer;
[self.layer addSublayer:_highlightLayer];
}
然后:
- (void)unhighlight
{
[_highlightLayer removeFromSuperlayer];
_highlightLayer = nil;
}
当然,这应该只用于小型的意见。
例:
你有一个UIButton * BUTTON1和UIView的*厂景
您可以禁用按钮,在这样一个观点:
[view1 setHidden:YES];
[button1 setEnabled:NO];
启用一个按钮和一个视图可以做到这样:
[view1 setHidden:NO];
[button1 setEnabled:YES];
希望这可以帮助..
虽然这种方法不能满足您不使用额外的观点,简单地增加0.6阿尔法黑色视图左右似乎达到的效果,与您可以使用这个新观点拦截UIEvents额外的好处的偏好,使所有的子视图大批被禁止。
你甚至可以以图形花俏,而不是仅仅使用重叠视图一个黑色的背景,你可以填补其背景与径向渐变,以达到某种这种情况发生在iOS的时候弹出一个视图禁用它背后的视图聚光灯照亮的效果.. 。