本方法采用监听滑动手势来移动View:
1、定义UITextField控件及滑动所需的参数:
#import <UIKit/UIKit.h>
@interface AloneSetPrizeViewController : UIViewController
{
///滑动事件
//触摸起始点坐标
CGPoint startPoint;
//是否正在移动View
BOOL bViewMove;
//View当前起始点Y坐标= upCount * 40.0f;
int upCount;
}
@property(nonatomic,retain) NSMutableDictionary *dictionary1;
@property(nonatomic,retain) IBOutlet UITextField *txtOnePrize;
@property(nonatomic,retain) IBOutlet UITextField *txtTwoPrize;
@property(nonatomic,retain) IBOutlet UITextField *txtThreePrize;
@property(nonatomic,retain) IBOutlet UITextField *txtFourPrize;
@property(nonatomic,retain) IBOutlet UITextField *txtFivePrize;
@property(nonatomic,retain) IBOutlet UITextField *txtSixPrize;
-(IBAction)backOff:(id)sender;
-(IBAction)finishToSubmit:(id)sender;
@end
//初始化self.view的起始y轴坐标=upCount*40.0f;
upCount = 0;//滑动开始事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesBegan");
bViewMove = false;
UITouch *touch = [touches anyObject];
CGPoint pointone = [touch locationInView:self.view];//获得初始的接触点
startPoint = pointone;
}
//滑动移动事件
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
//imgViewTop是滑动后最后接触的View
CGPoint pointtwo = [touch locationInView:self.view]; //获得滑动后最后接触屏幕的点
float moveY=pointtwo.y-startPoint.y;
if(fabs(moveY)>40 && !bViewMove)
{
bViewMove = true;
if (moveY>0) {
if (upCount<0) {
upCount ++;
}
startPoint.y += 40;
}else
{
if (upCount>-8) {
upCount --;
}
startPoint.y -= 40;
}
//判断两点间的距离
NSLog(@"滑动开始%d",upCount);
NSTimeInterval animationDuration=0.30f;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
//上移30个单位,按实际情况设置
CGRect rect=CGRectMake(0.0f,upCount * 40.0f,width,height);
self.view.frame=rect;
[UIView commitAnimations];
bViewMove = false;
NSLog(@"滑动结束");
}
}
ios--解决键盘遮挡UITextField控件的问题(方式二),布布扣,bubuko.com
ios--解决键盘遮挡UITextField控件的问题(方式二)
原文:http://blog.csdn.net/wanggsx918/article/details/21550331