我有一个小费计算器,它使用定制的键盘进行数字输入。我将其设置为根据屏幕尺寸进入屏幕底部的屏幕。下面的代码:
-(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);
这样无论您身在何处,它都会加载到正确的位置(也可以用来滚动页面)