我有一个小费计算器,它使用自定义键盘输入数字。我把它设置为根据屏幕尺寸进入屏幕底部的屏幕。代码如下:
-(void)PreTaxTotalShowKeyPad
{
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
// CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
[UIView beginAnimations:@"animateView" context:nil];
[UIView setAnimationDuration:0.5];
CGRect keypadViewiPhone = CGRectMake(0,(screenHeight -350),320,277);
PreTaxTotaliPhoneKeypadView.frame = keypadViewiPhone;
PreTaxTotaliPhoneKeypadView.alpha = 1.0;
[UIView commitAnimations];
}
我的问题是,如果你向下滚动一下并点击文本框将其重新启动,它会加载到我想要的更高的位置,并且在视觉上并不令人满意。
我现在意识到(不知道我是怎么错过的)因为我使用滚动条视图,当用户向下滚动时,屏幕尺寸当然保持不变,但滚动视图顶部的距离会发生变化。
我到处寻找,似乎无法弄清楚如何以编程方式将屏幕窗口底部的电线连接到滚动视图的顶部。
实质上是改变代码
CGRect keypadViewiPhone = CGRectMake(0,(screenHeight -350),320,277);
到
CGRect keypadViewiPhone = CGRectMake(0,( distanceFromTopOfScrollViewToBottomOfScreen - 350),320,277);
这样无论你身在何处都可以加载到正确的位置(也可以用来滚动页面)