你的位置:首页 > 操作系统

[操作系统]只 一行显示可左右滚动的文本(UITextField中文限制)


//// 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]);}

这样,无论是字母还是中文,都能动态获取