2011-08-15 14 views
0

私はピアノでアプリを作っています。それぞれのキーはそれ自身のサブクラスになります。UIViewに画像を追加する際の問題

私はキーをUIButtonのサブクラスにしようとしましたが、メソッドを呼び出す際に問題が発生した後、オンラインでチェックし、他の人がUIButtonsのサブクラス化に問題があることを発見しました。

それで、私は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をサブクラス化すればよいですか?

+0

'UIButton'をサブクラス化する必要がありますか? –

+0

おそらくあなたの問題を修正するつもりはありませんが、 '.gif'を' .png'イメージに変換することをお勧めしますか? 'PNG'画像は、iOSプラットフォーム(およびMac)向けに最適化されています。 –

答えて

2

UIImageViewを使用する必要があります。

イメージビューオブジェクトは、 を1つのイメージまたは一連のイメージをアニメートするためのビューベースのコンテナを提供します。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImageView_Class/Reference/Reference.html

たぶん、あなたは何をする必要があるかに応じて、その上に追加UIViews、とピアノのキー画像とUIImageViewの入った容器などのUIView、?

+0

イメージはUIImageViewで表示されますが、UIViewでできるようにタッチメソッドをオーバーライドすることはできません。 – Mahir

+0

@Mahir E - 次のような質問に対して受け入れられた答えを見てください。http:// stackoverflow .com/questions/855095/how-can-i-detect-the-touch-of-the-uiimageview – csano

+0

ええ、私は追加しました [self.userInteractionEnabled:YES]; [self.canBecomeFirstResponder:YES]; – Mahir

関連する問題