我想「變暗」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