0

我在同一个视图控制器(popOver 窗口)中有两个视图(A&B)并且想要在它们之间切换,视图 A 大于视图 B,当 popOver 窗口第一次加载时我希望视图 A 只出现并且当我按下某个按钮时在它里面,它应该缩小让视图B出现在它上面,我尝试设置视图B的高度以在窗口第一次加载时适合所有窗口(内部viewDidLoad)然后降低它的高度并增加另一个的高度单击按钮时查看,我尝试了该代码,但它没有改变视图的高度!

-(void)viewDidLoad
{
[super viewDidLoad];
UIView *contactsView=[self.view viewWithTag:2];// is this a correct initialization of a  uiView from a view in a storyBoard ?
CGRect frame=contactsView.frame;
frame.size.height+=100;
contactsView.frame=frame;
}

任何关于此的想法都会有所帮助,谢谢。

4

1 回答 1

0

作为一般性答案(我没有时间了解更多细节),我将总体使用 3 个视图:

1)视图控制器拥有的视图。2) 视图 A 3) 视图 B

可以在视图控制器的 viewDidLoad 中创建视图 A 和 B。然后设置每个框架的位置和大小。将它们都添加到视图中:

// 在你的 .h 文件中创建这些变量:

UIView* m_vA;
UIView* m_vB;

- (void)viewDidLoad
{
    m_vA = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 50.0, 50.0)] autorelease];
    m_vB = [[[UIView alloc] initWithFrame:<your rect for View B>] autorelease];

    // The views will automatically be retained. 
    [self.view addSubview:vA];
    [self.view addSubview:vB];

    m_vB.hidden = YES;
}

// In your button callback, toggle the visibility of views
- (IBAction)buttonPressed:(id)sender
{
    // Toggle the visibility of views
    m_vA.hidden = !m_vA.hidden;
    m_vB.hidden = !m_vB.hidden;
}

// 不要忘记在 dealloc 和 viewDidUnload 中清理这些视图的内存。

于 2012-05-01T23:21:32.883 回答