我已经在部分标题中添加了一个按钮,该按钮显示了单击它的视图。我的需要是,我要显示一个"向上箭头"显示视图时的图像和"向下箭头"隐藏视图时的图像。
我怎样才能做到这一点?请帮帮我......
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0, 0, 316, 60)];
[btn setTag:section];
[aView addSubview:btn];
[btn addTarget:self action:@selector(sectionTapped:) forControlEvents:UIControlEventTouchDown];
btn.backgroundColor=[UIColor clearColor];
}
答案 0 :(得分:2)
我建议你可以有2张图片 - 1张用于' Up'和#39; Down'箭头。 将默认图像设置为状态UIControlStateNormal的btn,并将另一个图像设置为状态UIControlStateSelected。 现在在您的sectionTapped:方法中只需更改按钮的状态。 因此,当您显示或隐藏视图时,您需要将按钮设置为是/否。
希望这有帮助。
答案 1 :(得分:1)
您可以尝试使用BOOL检查按钮是否被按下,并设置动画以旋转按钮中的图像以指向上方或下方。
-(IBAction)dropdownBtnClicked:(id)sender
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
if (!isDropdownEnabled)
{
//BOOL - checking if the button has been pressed or not
isDropdownEnabled=TRUE;
drpDwnBtn.transform=CGAffineTransformMakeRotation(270/180*M_PI);
}
else
{
isDropdownEnabled=FALSE;
drpDwnBtn.transform=CGAffineTransformMakeRotation(0);
}
[UIView commitAnimations];
}
答案 2 :(得分:1)
我之前在我的一个应用程序中完成了这个。
将此代码设为Reference
1.特定方法。
- (void)methodName:(UIButton *)sender
{
int i = [sender.titleLabel.text intValue];
NSNumber *numb;
if(i == 0)
{
numb = [NSNumber numberWithBool:NO];
sender.titleLabel.text = @"1";
[sender setImage:[UIImage imageNamed:@"down.png"] forState:UIControlStateNormal];
[sender setImage:[UIImage imageNamed:@"up.png"] forState:UIControlStateHighlighted];
}
else
{
numb = [NSNumber numberWithBool:YES];
sender.titleLabel.text = @"0";
[sender setImage:[UIImage imageNamed:@"up.png"] forState:UIControlStateNormal];
[sender setImage:[UIImage imageNamed:@"down.png"] forState:UIControlStateHighlighted];
}
}
2.在UITabelview viewForHeaderInSection中以编程方式设置UIButton。
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(240, 20, 30, 30)];
[button addTarget:self
action:@selector(methodName:)
forControlEvents:UIControlEventTouchDown];
button.tag = section;
if([[sectionsArray objectAtIndex:section] boolValue])
{
[button setImage:[UIImage imageNamed:@"up.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"down.png"] forState:UIControlStateHighlighted];
button.titleLabel.text = @"0";
}
else
{
[button setImage:[UIImage imageNamed:@"down.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"up.png"] forState:UIControlStateHighlighted];
button.titleLabel.text = @"1";
}