GIFに問題が表示されます。 下のコードは、スーパービューにビューを追加する方法と、スーパービューの一番下から表示する方法を示しています。このコードは、iOS 9では正常に動作し、iOS 10では正常に動作しません。UIVIewアニメーションがiOS 10で正しく動作しない
スライドアップアニメーションのアニメーションは適切ではありません。右から出てきて、下から真っ直ぐではなく角度をつけています。
これを解決するために手伝ってください。
+ (ControlsView *)addArticleControlsToView:(UIView *)view bellowSubview:(UIView *)subview{
ControlsView *articleControls = [[[NSBundle mainBundle] loadNibNamed:@"ControlsView" owner:self options:nil]firstObject];
[view insertSubview:articleControls belowSubview:subview];
NSDictionary *viewsDict = @{@"currentView":articleControls};
[articleControls setTranslatesAutoresizingMaskIntoConstraints:NO];
NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:[NSString stringWithFormat:@"H:|-0-[currentView]-0-|"] options:0 metrics:@{} views:viewsDict];
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[currentView(189)]-0-|" options:0 metrics:@{} views:viewsDict];
[view addConstraints:horizontalConstraints];
[view addConstraints:verticalConstraints];
[articleControls setBackgroundColor:[UIColor clearColor]];
articleControls.viewBottomConstraint.constant = -189;
[articleControls layoutIfNeeded];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:articleControls action:@selector(slideSheetDown)];
[articleControls addGestureRecognizer:tapGesture];
return articleControls;
}
- (void)slideSheetUp {
[UIView animateWithDuration:0.5 animations:^{
self.viewBottomConstraint.constant = 0;
self.scrollViewBottomConstraint.constant = 189;
[self setBackgroundColor:[UIColor clearColor]];
[self.scrollView.superview layoutIfNeeded];
[self layoutIfNeeded];
}];
}
アニメーションブロックの制約定数を更新しないでください。 – Desdenova
@Desdenovaが削除され、動作していますが、iOS 10でこれを現在アニメーション化する方法はありますか? –
'layoutIfNeeded'ビットをブロックに入れてください。その中に定数を設定しないでください。 – Desdenova