2009-07-20 8 views
0

質問があります。私はUIButtonsでアプリケーションを設計しました。その下にはUIImageViewがあります。私の問題は、UIButtonsがUIImageViewの下にある私のアプリを起動するときだった。私のUIButtonsのコードは次のとおりです。UIImageViewはUIbuttonをオーバーラップします

コード:

CALayer *touchedLayer = [myUIButton layer]; 
CABasicAnimation *wiggleAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; 

wiggleAnimation.duration = .1; 
wiggleAnimation.repeatCount = 1e100f; 
wiggleAnimation.autoreverses = YES; 

wiggleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DRotate(touchedLayer.transform, -.15 , 0.0 , -1.0 ,-1.5)]; 
wiggleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(touchedLayer.transform, -.15 , 0.0 , -1.0 ,-1.5)]; 

[touchedLayer addAnimation:wiggleAnimation forKey:@"wiggle"]; 

アニメーションが私のUIButtonsを開始下に取得し、私のUIImageViewはUIButtons以上になる、なぜ?


ここで私はIBでデザインしました。最初にUIImageViewを配置し、次に4つのUIButtonを配置しました。 UIImageViewは4つのUIButtonのバックグラウンドとして機能します。 アプリケーションがすべて正しく表示されたときに、アイコンをクリックしてコードを実行すると、問題が発生します。

これは私が見てきたもので、4つのUIButtonsはちらつきのように見えますが、それでもクリックされたイベントを受け入れることができます。ここでの結論は、UIButtonsはUIImageViewの上にありますが、表示に問題があることです。

何が原因である可能性があります、私はまだ私の目的を行うことができる何かを提案できますか?

おかげ

答えて

1

ビューは、アニメーション中に同じZ-ために滞在します。 UIButtonViewとUIImageViewをオーバーラップしないように追加したこと、そしてもちろんオブジェクトが重なったときにのみzオーダーが明らかになることを前提としています(コードのその部分は含まれていないため)。 zオーダーは、サブビューを親ビューに追加する順序によって決まります。

UIButtonViewがUIImageViewの上に表示されるようにするには、最後に追加します。また、[sendSubviewToBack]や[bringSubviewToFront]のような方法で注文を変更することもできます。

関連する問題