具有两个视图的分段控制

时间:2012-07-19 08:31:12

标签: ios view uisegmentedcontrol

首先,我在ViewController中定义了两个视图。

@interface ViewController : UIViewController
{
    UIView *view1;
    UITableView *view2;
}

我想通过使用分段控件来切换两个视图。 UIview显示按钮(图像),另一个显示在列表中。

但我遇到了一些麻烦。

我不知道如何控制这两个视图。 我发现我已经在[self.view]上创建了所有对象。

我不太了解superview和subview之间的关系。 现在,我只想在view1上设置它们,我不知道如何实现它。

非常感谢。

2 个答案:

答案 0 :(得分:0)

这样的东西? ...

-(IBAction)segmentChanged:(UISegmentedControl*)sender {
    if ([sender tag]==0) {
        [UIView animateWithDuration:0.5 animations:^{
            [view1 setAlpha:1.0];
            [view2 setAlpha:0.0];
        }];
    } else if ([sender tag]==1) {
        [UIView animateWithDuration:0.5 animations:^{
            [view1 setAlpha:0.0];
            [view2 setAlpha:1.0];
        }];
    }
}

您可以使用setFrame将视图移出可见区域而不是setAlpha ......

答案 1 :(得分:0)

我没有检查过代码,但它应该可以工作: -

-(IBAction)segmentChanged:(UISegmentedControl*)sender {
    if (sender.selectedSegmentIndex == 0) {
        view1.alpha = 0;
        view1.hidden = NO;
        [UIView animateWithDuration:0.5 animations:^{
            [view1 setAlpha:1.0];
            [view2 setAlpha:0.0];
        } completion:^(BOOL finished){ [view2 setHidden:YES]; }];
    } else {
        view2.alpha = 0;
        view2.hidden = NO;
        [UIView animateWithDuration:0.5 animations:^{
            [view2 setAlpha:1.0];
            [view1 setAlpha:0.0];
        } completion:^(BOOL finished){ [view1 setHidden:YES]; }];
    }
}

并在viewDidLoad中设置

view2.hidden = YES;
self.segmentControl.selectedSegmentIndex = 0;