我在 cellForRow 方法的每一行前面创建了一个图像按钮( a.png )。在同一方法本身我调用 buttonPressed 方法,该方法具有按下按钮时要执行的代码。我希望按下按钮时,按钮图像应该更改为相同尺寸的另一个图像( b.png )。
请帮助解决这个问题。
答案 0 :(得分:0)
[but setBackgroundImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
[but setBackgroundImage:[UIImage imageNamed:@"b.png"] forState:UIControlStateSelected];
试试这个......
答案 1 :(得分:0)
在自定义单元格上为UITableView和UIButton创建自定义单元格。
为UIButtion创建属性。
在cellForRowAtIndexPath:方法
中//Set Action on Button in Table View Row
[cell.UIButtonOutlet addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
这将从您的按钮创建操作。
方法
-(void)checkButtonTapped:(id)sender event:(id)event
{
NSSet *touches=[event allTouches];
UITouch *touch=[touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.historyTableView];
//GET IndexPath
NSIndexPath *indexPath=[self.TableView indexPathForRowAtPoint: currentTouchPosition];
selectedCell= [PairTableView cellForRowAtIndexPath:indexPath];
[selectedCell.UIButtonOutlet setImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
答案 2 :(得分:0)
尝试以下方法
UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
[button setFrame:CGRectMake(12,12,200,200)];
[button addTarget:self action:@selector(click: withEvent:) forControlEvents:UIControlEventTouchUpInside];
[button setTag:indexPath.row];
[button setBackgroundImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
[cell.contentView addSubview:button];
然后在按钮的点击操作方法
-(void)click:(UIButton *)button :withEvent:(UIEvent *)events{
[self yourFunction:(UIButton *)button];
}
然后终于
-(void)yourFunction:(UIButton *)button{
button.selected = ! button.selected;
if (button.selected) {
[button setBackgroundImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
}
else{
[button setBackgroundImage:[UIImage imageNamed:@"b.png"] forState:UIControlStateNormal];
}
}
答案 3 :(得分:-1)
初始化按钮时尝试此操作
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
然后修改你的方法(在按下按钮时调用),就像这样
-(void)yourMethod:(id)sender{
UIButton *btn=(UIButton*)sender;
[btn setImage:[UIImage imageNamed:@"b.png"] forState:UIControlStateNormal];
//your other code
}