iphone SDK прозрачный фон подпредставления - PullRequest
2 голосов
/ 26 января 2011

У меня есть основной вид с изображением на нем.

Я пытаюсь добавить подпредставление с помощью [self.view addSubview:view2];, но хочу, чтобы фон view2 был прозрачным. Попробовал opaque = no и цвет фона для clearcolor, а также попытался создать подкласс uiview и переписать drawrect с помощью:

#import "TransparentView.h"


@implementation TransparentView

- (id)initWithFrame:(CGRect)frame 
{
    if (self = [super initWithFrame:frame]) {
        [self setBackgroundColor:[UIColor clearColor]];
        self.opaque=NO;
        self.clearsContextBeforeDrawing=YES;
    }
    return self;
}

- (void)drawRect:(CGRect)rect 
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, rect);

    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
    CGContextFillRect(context, rect);
}


@end

Но по-прежнему не отображается прозрачный фон подпредставления ... есть идеи?

Ответы [ 5 ]

11 голосов
/ 26 января 2011

Попробуйте:

view.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
view.opaque = NO;
4 голосов
/ 27 января 2011

Вид загружается из файла пера?Если это так, -initWithFrame: не будет вызван;-initWithCoder: будет вызываться вместо.Лучшее место для этой инициализации может быть в -viewDidLoad.Но установка цвета фона на [UIColor clearColor] определенно поможет.

2 голосов
/ 26 января 2011

Попробуйте покрасить фон подпредставления 0.0 для Альфы. Это должно сделать его полностью прозрачным.

Примерно так:

UIColor *myUIColor = [UIColor colorWithRed: 1.0 green: 1.0 blue: 1.0 alpha:0.0];
1 голос
/ 23 апреля 2013

В функции

- (void)drawRect:(CGRect)rect 

попробуйте обновить

    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);

до

  const CGFloat BACKGROUND_OPACITY = 0.85; //Note: update this value to what you need 
  CGContextSetRGBFillColor(context, 1, 1, 1, BACKGROUND_OPACITY); // You can change 1,1,1 to the needed values

Эта ссылка может вам помочь http://www.cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html

0 голосов
/ 04 сентября 2014

У меня были случаи, когда ... addSubview:clearView], казалось, сбрасывал цвет фона clearView ( WTF! ) на что-то неясное.Я добавил

[clearView setBackgroundColor:nil];

где-то после этого, и это, похоже, помогло.

...