我有一個已添加到我的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