// // ViewController.m // 一行显示可滚动的文本 // // Created by apple on 15-5-8. // Copyright (c) 2015年 apple. All rights reserved. // #import "ViewController.h" @interface ViewController () { UIScrollView *_scrollView; UITextField *_textField1; NSInteger _indextext; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(70,CGRectGetHeight(self.view.bounds)/2,CGRectGetWidth(self.view.bounds) - 100, 30)]; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.bounces = NO; _scrollView.layer.borderWidth = 1; [self.view addSubview:_scrollView]; NSMutableAttributedString * attributedStr4 = [[NSMutableAttributedStringalloc]initWithString:@"请输入约会内容"]; [attributedStr4 addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(0, attributedStr4.length)]; _textField1 = [[UITextField alloc]initWithFrame:CGRectMake(0,7,CGRectGetWidth(self.view.bounds) - 100, 15)]; _textField1.textAlignment = NSTextAlignmentRight; _textField1.text = @""; _textField1.textColor = [UIColor grayColor]; _textField1.font = [UIFont fontWithName:@"Helvetica-Bold" size:13]; _textField1.attributedPlaceholder = attributedStr4; [_textField1 addTarget:self action:@selector(textFieldEditChanged:)forControlEvents:UIControlEventEditingChanged]; [_scrollView addSubview:_textField1]; _scrollView.contentSize = CGSizeMake(CGRectGetWidth(_textField1.bounds),30); } - (void)textFieldEditChanged:(UITextField *)textField { if (CGRectGetWidth(_textField1.bounds) >=CGRectGetWidth(self.view.bounds) - 100) { _scrollView.contentSize =CGSizeMake(CGRectGetWidth(_textField1.bounds),30); NSLog(@"%.2f",_scrollView.contentSize.width); if (_indextext != _textField1.text.length) { [_textField1 sizeToFit]; [_scrollViewsetContentOffset:CGPointMake(CGRectGetWidth(_textField1.bounds) -CGRectGetWidth(_scrollView.bounds), 0) animated:NO]; _indextext = _textField1.text.length; } } else { _textField1.frame = CGRectMake(0, 7,CGRectGetWidth(self.view.bounds) - 100, 15); [_scrollView setContentOffset:CGPointMake(0, 0) animated:NO]; _scrollView.contentSize = CGSizeMake(CGRectGetWidth(self.view.bounds) - 100,30); _indextext = _textField1.text.length; } if (_textField1.text.length > 36) { _textField1.text = [_textField1.text substringToIndex:36]; } } @end
补1:我这方法其实很笨,大家有好的方法共享出来,共同进步!
- (void)viewDidLoad { [_textField addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged]; [super viewDidLoad]; } - (void)textFieldEditChanged:(UITextField *)textField { NSLog(@"textField text : %@", [textField text]); }
这样,无论是字母还是中文,都能动态获取