2012-11-05 39 views

回答

9

下面是我如何做到這一點。不要忘了設置代理上的UITextField

- (void) scrollViewAdaptToStartEditingTextField:(UITextField*)textField 
{ 
    CGPoint point = CGPointMake(0, textField.frame.origin.y - 1.5 * textField.frame.size.height); 
    [scrollView setContentOffset:point animated:YES]; 
} 

- (void) scrollVievEditingFinished:(UITextField*)textField 
{ 
    CGPoint point = CGPointMake(0, 0); 
    [scrollView setContentOffset:point animated:YES]; 
} 

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    [self scrollViewAdaptToStartEditingTextField:textField]; 
    return YES; 
} 

- (BOOL) textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    [self scrollVievEditingFinished:textField]; 
    return YES; 
} 
0

這裏是SWIFT 3.0版本

func scrollViewAdapt(toStartEditing textField: UITextField) { 
     let point = CGPoint(x: CGFloat(0), y: CGFloat(textField.frame.origin.y - 1.7 * textField.frame.size.height)) 
     scrollView.setContentOffset(point, animated: true) 
    } 

    func scrollVievEditingFinished(_ textField: UITextField) { 
     let point = CGPoint(x: CGFloat(0), y: CGFloat(0)) 
     scrollView.setContentOffset(point, animated: true) 
    } 
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 

     self.scrollViewAdapt(toStartEditing: textField) 
     return true 
    } 

    func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
     textField.resignFirstResponder() 
     self.scrollVievEditingFinished(textField) 
     return true 
    } 
相關問題