Ios 具有两个视图的分段控件

Ios 具有两个视图的分段控件,ios,view,uisegmentedcontrol,Ios,View,Uisegmentedcontrol,首先,我在ViewController中定义了两个视图 @interface ViewController : UIViewController { UIView *view1; UITableView *view2; } 我想使用分段控件切换这两个视图。 UIview显示按钮(图像),另一个显示在列表中 但是我有一些麻烦 我不知道如何控制这两种观点。 我发现我已经在[self.view]上创建了所有对象 我不太理解superview和subview之间的关系。 现在,我只想在

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

@interface ViewController : UIViewController
{
    UIView *view1;
    UITableView *view2;
}
我想使用分段控件切换这两个视图。 UIview显示按钮(图像),另一个显示在列表中

但是我有一些麻烦

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

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


非常感谢。

像这样的东西

-(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…

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

-(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;

您也可以通过UIVIew.eh的.hidden属性来切换视图的可见性,而不是设置alpha或框架。。。谢谢。如何使分段按钮在view2中仍然可见?EN我的表格视图尚未初始化…我正在填充单元格…分段按钮、view1和view2应该是ViewController主视图的子视图。只需使用.hidden或.alpha,而不是两者,这是无用的。将alpha值设置为零将明显隐藏视图,但该视图仍将存在,并将接收触摸事件,因此,必须将视图从其父层次结构中删除,或将其隐藏值设置为“是”