iOS:让UIView“看不见”,但不是它的子视图

时间:2015-10-14 23:58:44

标签: ios objective-c uiview

THE SCENARIO 我正在开发一个容器UIView,它将保存典型视频播放器的控件。控件将是播放和暂停视频的PLAY按钮,以及用于更改视频中位置的TIME滑块。这些控件将添加到容器视图中,然后将添加到播放器的顶部

问题当我将UIView子类化并制作背景色clearColor时,我得到的是一个黑色视图,它会添加到我的播放器之上。所以我看不到视频播放,这很糟糕。

- (id)initWithFrame:(CGRect)frame andMediaType:(MediaType) mediaType {
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        self.backgroundColor = [UIColor clearColor];
        self.controlFrame = frame;
        self.mediaType = mediaType;
    }
    return self;
}

问题如何将UIView子类化为正确使其成为背景clearColor或使其成为“不可见”,以便它不会覆盖播放器,仍然让它的子视图(控件)在播放器上保持可见吗?

例证

enter image description here

修改

以下是我创建这些视图的方法。我称之为:

if (!self.player) {
    [self setUpPlayer];
}

if (!self.controlView) {
    [self setUpControlsForPlayerWithType:mediaType];
}

并按照以下方式构建它们:

-(void)setUpControlsForPlayerWithType:(MediaType) mediaType {

    self.controlView = [[MediaPlayerControlView alloc] initWithFrame:CGRectMake(0, 0, self.feedImageView.frame.size.width, self.feedImageView.frame.size.height)];
    [self.feedImageView addSubview:self.controlView];
}

-(void)setUpPlayer {

    self.player = [[RTMoviePlayerController alloc]initWithURLString:kSampleMedia];
    self.player.view.frame = CGRectMake(0, 0, self.feedImageView.frame.size.width, self.feedImageView.frame.size.height);
    [self.player setControlStyle:RTMovieControlStyleEmbedded];
    [self.feedImageView addSubview:self.player.view];
 }

0 个答案:

没有答案