1

我需要在当前视图控制器中的标签栏上方弹出透明操作表,但它不应与标签栏重叠(我需要清楚地看到标签栏)。

4

1 回答 1

0

要在 UIActionsheet 上创建透明背景,您必须设置委托,然后您可以执行以下操作:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
    [actionSheet.layer setContents:nil];
}


要创建一个从底部动画的自定义 UIView,你可以这样做>

bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 250)];
bottomView.backgroundColor = [UIColor redColor];
bottomView.hidden = YES;
[self.view addSubview:bottomView];

UIButton *testButton = [UIButton buttonWithType:UIButtonTypeCustom];
testButton.frame = CGRectMake(20, 50, 280, 40);
testButton.backgroundColor = [UIColor greenColor];
[bottomView addSubview:testButton];

[self animateBottomViewIn];

并有以下方法:

-(void)animateBottomViewIn
{
    bottomView.hidden = NO;
    [UIView animateWithDuration:0.3 animations:^{
        bottomView.frame = CGRectMake(0, self.view.frame.size.height - bottomView.frame.size.height, self.view.frame.size.width, bottomView.frame.size.height);
    } completion:^(BOOL finished) { }];
}

-(void)animateBottomViewOut
{
    [UIView animateWithDuration:0.3 animations:^{
        bottomView.frame = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, bottomView.frame.size.height);
    } completion:^(BOOL finished) {
        bottomView.hidden = YES;
    }];
}
于 2013-01-08T09:07:55.667 回答