0

iPhone初心者です。私はUITextView私の見解を持っています。入力を開始すると、キーボードがポップアップしてテキストビューを覆います。だから、私の質問は次のとおりです。入力を開始したときにテキストビューを上にスライドさせる方法は? 提案とサンプルコードをいただければ幸いです。

4

1 に答える 1

0

以下のコードを確認してください。このコードでは、テキストビューをスクロールビューに追加します

#import <UIKit/UIKit.h>

@interface HomeViewController : UIViewController <UIScrollViewDelegate,UITextViewDelegate>{
    IBOutlet UIScrollView *scrollView;
    IBOutlet UITextView *txtView;
}
- (void)scrollViewToCenterOfScreen:(UIView *)theView ; 
@end

#import "HomeViewController.h"
@implementation HomeViewController

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    [scrollView addSubview:txtView];
}

- (void)scrollViewToCenterOfScreen:(UIView *)theView {  
    CGFloat viewCenterY = theView.center.y;  
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];  
    CGFloat availableHeight = applicationFrame.size.height - 200; 

    // Remove area covered by keyboard  
    CGFloat z = viewCenterY - availableHeight / 2.0;  
    if (z < 0) {  
        z = 0;
    }
    [scrollView setContentOffset:CGPointMake(0, z) animated:YES];  
}

#pragma mark For Making UITextView delegate methods-
-(void)textViewDidBeginEditing:(UITextView *)textView{
    [self scrollViewToCenterOfScreen:textView];
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text{
    if (range.length==0) {
        if ([text isEqualToString:@"\n"]) {
            [textView resignFirstResponder];
            [scrollView1 setContentOffset:CGPointMake(0, 0) animated:YES];
            return NO;        
            }
    }   
    return YES;
}
于 2012-05-29T12:08:39.110 に答える