1

my に 2 行以上追加するUiTextViewと見栄えはよくなりますが、ユーザーが 1 行だけ入力すると、テキストはUiTextView. の左上にとどまらせるにはどうすればよいUiTextViewですか?

4

2 に答える 2

1

はるかに簡単な解決策を見つけました。次のコードは、テキストだけを移動します。[textView setContentInset:UIEdgeInsetsMake(5, 0, 5,0)]

于 2013-02-09T16:21:35.613 に答える
1

このブログ ( iOS: Vertical aligning text in a UITextView ) をチェックして、中央と下の垂直方向の配置を行う方法を説明しています。同様のロジックを使用し、場合によっては contentOffset y param をゼロに設定して、上揃えにします。

これはブログのコードです。

- (void) viewDidLoad {
   [textField addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
   [super viewDidLoad];
}

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
   UITextView *tv = object;
   //Center vertical alignment
   //CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height * [tv zoomScale])/2.0;
   //topCorrect = ( topCorrect < 0.0 ? 0.0 : topCorrect );
   //tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};

   //Bottom vertical alignment
   CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height);
    topCorrect = (topCorrect <0.0 ? 0.0 : topCorrect);
    tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
}
于 2013-01-18T22:43:41.080 に答える