//// 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:我这方法其实很笨,大家有好的方法共享出来,共同进步!
补2:textfield加个状态监听器-限制中文
- (void)viewDidLoad{ [_textField addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged]; [super viewDidLoad];}- (void)textFieldEditChanged:(UITextField *)textField{ NSLog(@"textField text : %@", [textField text]);}
这样,无论是字母还是中文,都能动态获取
- 1楼rose-玫瑰
- 不错。
- Re: 幻想无极
- @rose-玫瑰,谢谢