做一个点击相应按钮滑出菜单栏的动画效果,因为不懂viewWithTag的意思纠结了好久。
动画效果是这样的,点击相应的UIButton滑出一个view再点击就收回,且UIButton 处于选中状态,并且view处于滑出状态时点击其他按钮仍是处于滑出状态且当前点击的按钮处于选中状态其他按钮恢复初始状态。先上代码再讲解:
-(void) btnClicked:(id)sender{
//UIImageView *bgViewTitle = [[UIImageView alloc] initWithFrame:CGRectMake(10, 376, 300, 60)];
// bgViewTitle.image = [UIImage imageNamed:@"pop_up_menu"];
CGRect tempFrame = popMenu.frame;
UIButton *btn=(UIButton *)sender;
//view滑入滑出
if (!btn.selected || tempFrame.origin.y == SlideHeight) {
[UIView animateWithDuration:0.7 animations:^{
[popMenu setFrame:CGRectMake(10, 370, 300, 60)];
}completion:^(BOOL finished) {
}];
//btn.selected = YES;
}else {
[UIView animateWithDuration:0.7 animations:^{
[popMenu setFrame:CGRectMake(10, 418, 300, 60)];
}completion:^(BOOL finished) {
}];
//btn.selected = NO;
}
[self btnFrame];
//切换不同btn的显示状态
//引用 tag值为 999 的view
UIImageView *bgView = (UIImageView *)[self.view viewWithTag:999];
//遍历bgview下的子view
for (UIView *subView in bgView.subviews ) {
//判断 subView 是否是UIButton 的子类
//if ([subView isKindOfClass:[UIButton class]]) {
UIButton *btn1 = (UIButton *)subView;
//NSLog(@"btn====%d", btn.tag);
if (btn1.tag == btn.tag) {
btn1.selected = YES;
}else{
btn1.selected = NO;
//NSLog(@"btn1====%d", btn1.tag);
}
//}
}
//点击不同的按钮切换不同的 控制器
//self.selectedIndex = btn.tag;
}
UIImageView *bgView = (UIImageView *)[self.viewviewWithTag:999];
前面把这个view的tag值设置为了 999;还有一个是就for in的理解。
for( 变量 in 对象)
{
执行的代码
}