我试图用动画取消隐藏 UIView ,但它对iphone模拟器5不起作用。取消隐藏在除5和5之外的所有其他模拟器上后,视图显示正常。
可能是什么原因。无法检测到问题。任何帮助?
/*To unhide*/
self.view4.hidden=NO;
[UIView animateWithDuration:0.5 animations:^{
self.view4.frame = CGRectMake(2, 70, 70, 300);
self.view4.alpha = 1.0f;
} completion:^(BOOL finished) {
}];
//for showing view3
self.view3.hidden=NO;
[UIView animateWithDuration:0.5 animations:^{
[self.view3 setFrame:CGRectMake(0, 303, 320, 95)];
self.view3.alpha = 1.0f;
} completion:^(BOOL finished) {
}];
在按钮上单击视图3没有出现:(。view4看起来很好。我也试过通过更改帧值但没有进展。隐藏和减少alpha消失view3出现在屏幕上动画,但不是显示它。
答案 0 :(得分:0)
问题是您正在使用的硬集坐标。如果您检查self.view.bounds(或self.view3.superview.bounds),您会注意到iPhone 5上的视图与iPhone 6上的维度相同iPhone 6Plus / 7Plus。您应该计算相对于self.view.bounds指标的视图位置。
// for showing view 3
self.view3.hidden=NO;
[UIView animateWithDuration:0.5 animations:^{
CGRect parentBounds = self.view.bounds;
CGRect destinationFrame = CGRectMake(0,parentBounds.size.width,parentBounds.size.height-95,95);
[self.view3 setFrame:destinationFrame];
self.view3.alpha = 1.0f;
} completion:^(BOOL finished) {
}];
视图现在应始终显示在父视图范围内,并在iPhone 5上可见。