Objective c 将图像添加到UIView时出现问题

Objective c 将图像添加到UIView时出现问题,objective-c,uiview,uiimageview,uiimage,Objective C,Uiview,Uiimageview,Uiimage,我正在用钢琴制作一个应用程序,每个键都是它自己的子类 我尝试将键作为UIButton的子类,但在调用方法时遇到了一些问题,我在网上查看,发现其他人在将UIButton子类化时也遇到了问题 然后我尝试将UIView子类化。问题是,我试图添加一个图像到它,但它显示为一个黑匣子 这是来自CustomView的代码 @implementation Keys - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; i

我正在用钢琴制作一个应用程序,每个键都是它自己的子类

我尝试将键作为UIButton的子类,但在调用方法时遇到了一些问题,我在网上查看,发现其他人在将UIButton子类化时也遇到了问题

然后我尝试将UIView子类化。问题是,我试图添加一个图像到它,但它显示为一个黑匣子

这是来自CustomView的代码

@implementation Keys

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {

    self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"whitekey.gif"]];                                

}
return self;
(我已确认问题不是whitekey.gif)

以下是来自viewController的代码

- (void)viewDidLoad
{
[super viewDidLoad];


Keys *whiteKey = [[Keys alloc] initWithFrame:CGRectMake(0, 0, 100, 300)];
[self.view addSubview:whiteKey];

}

如果我将UIImageView子类化会更好吗

您应该使用UIImageView

图像视图对象提供用于显示的基于视图的容器 单个图像或为一系列图像设置动画


可能是一个UIView作为容器,带有带钢琴键图像的UIImageView,上面还有其他UIView,这取决于您需要做什么?

您确定必须对
UIButton
进行子类化吗?它可能不会解决您的问题,但是我可以建议您将
.gif
转换为
.png
图像吗
PNG
图像针对iOS平台(和Mac)进行了更优化。图像显示为带UIImageView,但我不能像使用UIView@MahirE--看看下面这个问题的公认答案:是的,我添加了[self.userInteractionEnabled:YES];[self.canBecomeFirstResponder:是];