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