我是Xcode和iOS开发的新手,并尝试构建一个播放少量 mp3 文件的应用。选择tableview
中的行时,将播放相应的文件。我创建了一个带有PlayButton
图标的播放按钮(自定义按钮)。我在这里要做的是:
我需要帮助的是:
didSelectRowAtIndexPath
任何帮助都会非常有帮助。
答案 0 :(得分:3)
回答你的部分
1)为自定义按钮分配标签,例如“10”
现在你的didSelectRowAtIndexPath试试这样的事情
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UIButton *playBtn = (UIButton*)[cell viewWithTag:10]; //This way you can acess your custom button
2)分配/更改图像很简单,这里是如何
[playbtn setImage:[UIImage imageNamed:@"name of your image"] forState:UIControlStateNormal];
答案 1 :(得分:0)
我建议创建一个自定义单元格,以便每个单元格可以自己管理它的项目。一个简单的类,它继承自UITableViewCell
并保存歌曲的实体,UIButton
和一些方法。对于播放/暂停状态,也可能是BOOL
值。
// CustomCell.h
@interface CustomCell : UITableViewCell
{
IBOutlet UIButton *playButton;
id songEntity;
BOOL isPlaying;
}
-(void)playSong;
-(void)pauseSong;
@end
// CustomCell.m
#import "CustomCell.h"
@implementation CustomCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]))
{
isPlaying = NO;
// init button...
UIImage *img = [UIImage imageNamed:@"playButton.png"];
[playButton setBackgroundImage:img forState:UIControlStateNormal];
}
return self;
}
-(void)playSong
{
// ...
UIImage *img = [UIImage imageNamed:@"pauseButton.png"];
[playButton setBackgroundImage:img forState:UIControlStateNormal];
}
-(void)pauseSong
{
// ...
UIImage *img = [UIImage imageNamed:@"playButton.png"];
[playButton setBackgroundImage:img forState:UIControlStateNormal];
}
//...
@end
答案 2 :(得分:0)
引用任何静态(不是单元格)视图(如UIButton)的标准(和简单)是在XCode中启用Assistant Editor并按CTRL将项目拖到Interface Builder的.h文件的接口部分
这会为项目创建IBOutlet
属性。 XCode将提示您为该属性命名。
如果您将IBOutlet
命名为“playButton”,则可以从同一个视图控制器中引用self.playButton
。