我有一个已添加到我的UIView的子视图。这个想法是,子视图是一个与uibuttons悬停的面板。子视图的字母为0.2,因为用户需要能够看到背后的内容。iPhone SDK:透明视图中的非透明子视图
问题是,当我向子视图添加uibuttons时,它们从子视图继承alpha(我希望按钮不透明并具有1.0的alpha)。我试图通过遍历uibuttons并将alpha设置回1.0来解决这个问题,但没有成功。解决方案?
// Create the subview and add it to the view
topHoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
topHoverView.backgroundColor = [UIColor blackColor];
[topHoverView setAlpha:0.2];
[self.view addSubview:topHoverView];
// Add button 1
button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button1 setFrame:CGRectMake(20, 10, 80, 30)];
[button1 setTitle:@"New" forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(button1Action:) forControlEvents:UIControlEventTouchUpInside];
[topHoverView addSubview:button1];
// Add button 2
button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button2 setFrame:CGRectMake(120, 10, 80, 30)];
[button2 setTitle:@"Clear" forState:UIControlStateNormal];
[button2 addTarget:self action:@selector(button2Action:) forControlEvents:UIControlEventTouchUpInside];
[topHoverView addSubview:button2];
// Add button 3
button3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button3 setFrame:CGRectMake(220, 10, 80, 30)];
[button3 setTitle:@"Delete" forState:UIControlStateNormal];
[button3 addTarget:self action:@selector(button3Action:) forControlEvents:UIControlEventTouchUpInside];
[topHoverView addSubview:d button3];
// Attempt to iterate through the subviews (buttons) to set their transparency back to 1.0
for (UIView *subView in topHoverView.subviews) {
subView.alpha = 1.0;
}
干杯,很好的解决方法。 – 2009-09-11 07:16:59
谢谢菲利普,除了通过IB以外,我试图做类似的事情,我只是无法获得我想要的效果。但是你的解决方法帮助我获得了它。 – sherry 2012-12-16 06:53:33