clipToBoundsの使用は、論理レイアウトではなく、サブビューの視覚的なレイアウトにのみ影響します。これは、私のサブビューは目には見えませんが、触れると見えることを意味します。
subViewの位置ではなくサイズをアニメーション化することで、この問題を回避しました。以下の私のコードでは、stationProximityViewはsubViewです。サイズを40ピクセルアニメーション化して、黒いタイトルを表示します。
[UIView beginAnimations:@"stationProximityBar" context:NULL];
self.stationProximityView.view.frame = CGRectOffset(self.stationProximityView.view.frame, 0, -40);
[UIView commitAnimations];
不要になったときは、見えないところでアニメートします。
[UIView beginAnimations:@"stationProximityBar" context:NULL];
self.stationProximityView.view.frame = CGRectMake(0 ,0, 320, 500);
[UIView commitAnimations];
ユーザーが表示ボタンをタップすると、サブビュー全体が表示されます。
[UIView beginAnimations:@"stationProximityBar" context:NULL];
self.stationProximityView.view.frame = CGRectMake(0,460,320,40);
[UIView commitAnimations];
閉じると、小さなバーと同じようにビューが非表示になります。
[UIView beginAnimations:@"hideStationProximityBar" context:NULL];
self.stationProximityView.view.frame = CGRectMake(0,0,320,500);
[UIView commitAnimations];
現在、このコードはiPhone 5でのみテストされているため、ハードコードされた高さ500は、以前のiPhoneモデルで問題を引き起こします。