我正在开发一个应用程序,其中 1 ViewController 具有具有以下行为的 UISegmentControl:
第 1 段(如果尚未到位):
- 淡入项目
- 向下滑动段控制
第 2 段(如果尚未到位):
- 淡出项目
- 向上滑动段控制
第 3 段(如果尚未到位):
- 尚未实施,但类似于第 2 段
为此,我正在使用以下代码:
- (IBAction)segmentControlAction:(id)sender {
// Change which container will be visible
int selectedIndex = self.overviewSegmentControl.selectedSegmentIndex;
if (selectedIndex == 0) {
// Show details and hide reviews & related
self.detailContainer.hidden = NO;
self.relatedContainer.hidden = YES;
// SHOW THE DETAILS
[self showDetails];
} else if (selectedIndex == 1) {
// Show Reviews and hide details & related
self.reviewsContainer.hidden = NO;
self.relatedContainer.hidden = YES;
// SHOW THE REVIEWS
[self showOther];
} else if (selectedIndex == 2) {
// Show related and hide details & reviews
self.relatedContainer.hidden = NO;
self.reviewsContainer.hidden = YES;
}
}
-(void)showOther {
// Animate the reviews
[UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:.9 initialSpringVelocity:1 options:UIViewAnimationOptionTransitionNone animations:^{
// Hide details controls
self.profileImageView.alpha = 0;
self.seperatorImageView.alpha = 0;
self.byLabel.alpha = 0;
self.authorLabel.alpha = 0;
// Move segmentControl
[self.overviewSegmentControl setFrame:CGRectMake(self.overviewSegmentControl.frame.origin.x, self.previewImageView.frame.size.height + 8, self.overviewSegmentControl.frame.size.width, self.overviewSegmentControl.frame.size.height)];
}completion:^(BOOL finished) {
// Completed
}];
}
-(void)showDetails{
// Animate the details
[UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:.9 initialSpringVelocity:1 options:UIViewAnimationOptionTransitionNone animations:^{
// Move segmentControl
[self.overviewSegmentControl setFrame:CGRectMake(self.overviewSegmentControl.frame.origin.x, self.previewImageView.frame.size.height + 85, self.overviewSegmentControl.frame.size.width, self.overviewSegmentControl.frame.size.height)];
// Hide details controls
self.profileImageView.alpha = 1;
self.seperatorImageView.alpha = 1;
self.byLabel.alpha = 1;
self.authorLabel.alpha = 1;
}completion:^(BOOL finished) {
// Completed
}];
}
第二段完美运行 - 一些控件淡出,段控件向上滑动。但是,第 1 段使该段快速回落并快速可视化其他控件,而不是执行与第 1 段相同的漂亮动画。
任何想法为什么会发生这种情况以及我该如何解决?
编辑:
视图控制器:
大 UIImageView 下方的控件应该消失,而段控件在主 UIImageView 正下方向上滑动。调用 -(void)showDetails 方法时则相反。
谢谢!埃里克