使用 clipToBounds 只会影响 subView 的视觉布局,不会影响逻辑布局。这意味着虽然我的 subView 对眼睛不可见,但触摸可见。
我通过动画 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 型号出现问题。