父视图iPhone上的子视图位置

时间:2011-12-23 07:36:14

标签: iphone objective-c ios xcode ipad

我正在使用这样的菜单栏(在ImageView上使用UIBUTTONS)

enter image description here

现在我需要做的是,当我点击每个按钮时,弹出窗口(子视图)会出现如下:

enter image description here

我该怎么做?

我的第二个问题是,当我点击同一个按钮或视图上的任何其他位置时,弹出窗口应该隐藏,如果我点击另一个菜单按钮弹出窗口应该从上一个按钮隐藏,并应显示在其他按钮上。 ..

我的项目已经使用UIviewcontroller创建,所以我认为包含标签栏会很困难

任何帮助请...

-(IBAction)buttonNotify:(id)sender{

popOver.frame = CGRectMake(173, 385, 88, 33);

[self.view addSubview:popOver];

}

2 个答案:

答案 0 :(得分:0)

    menu1Btn.tag = 0;
menu2Btn.tag = 1;
....


-(IBAction)buttonNotify:(id)sender{  
int tag = [sender tag];  
[popOver removeFromSuperView];  
if(tag ==0){  
popOver.frame = CGRectMake(0, 385, 88, 33);  
[self.view addSubview:popOver];  
}  
else if(tag ==1){
popOver.frame = CGRectMake(40, 385, 88, 33);  
[self.view addSubview:popOver];  

}
else if(tag ==2){
popOver.frame = CGRectMake(80, 385, 88, 33);  
[self.view addSubview:popOver];  

}
...... 

}

答案 1 :(得分:0)

在ViewController声明的.h文件中

UIImageView *popupView`;

在初始化的.m文件中初始化它,类似于

popupView = [[UIImageView alloc] initWithImage:@"your_image.png"];
popUpView.frame = //some CGRect here//;
popUpView.hidden = YES;
[self.view addsubView:popupView];
[popupView release];

另外,当你创建按钮时,你会这样做,是吗?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = //some CGRect here//;
btn.tag = 1; // here you can set numeric tag for all your buttons
[btn addTarget:self action:@selector(buttonHandler:)forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn]; 
[btn release]

并实施方法

-(void)buttonHandler:(id)sender
{
    //sender here is your button object
    //so you can take it's tag or frame or something else to set frame of popupView
    popUpView.frame = //some rect
    popUpView.hidden = NO;
}

当你触摸视图时,请设置 popupView.hidden = YES隐藏它

您还可以添加一些动画。