我想“变暗”UIView一定量。现在,我做的变黑是这样的:变暗UIView
UIView *overlay = [[UIView alloc] initWithFrame:mainView.bounds];
overlay.backgroundColor = [UIColor blackColor];
overlay.alpha = 0.5f;
[mainView addSubview:overlay];
不幸的是,这也增加了一个半透明的黑色覆盖到的mainView
部分是透明的。有什么方法可以使不透明部分变暗吗?
这看起来很有希望!我不确定你的意思是与其他视图合成,但(我是UIView noob)。在我的例子中,我可以重写drawRect:在mainView中吗? – igul222 2010-04-16 19:05:10
混合模式变暗会使已经在同一上下文中绘制的其他所有内容变暗。这意味着你想要变暗的任何观点必须已经吸收到你将要绘制的相同背景中。在'drawRect:'中对当前上下文的控制取决于系统,我不确定它是如何执行的。如果它为每个视图创建一个全新的上下文,那么这个代码将不会做任何事情。如果这不起作用,您可以将视图渲染成图像,然后如上所述绘制图像并使其变暗。 – drawnonward 2010-04-17 01:38:20
这不是很慢吗? – hfossli 2012-12-20 10:43:38