只 一行显示可左右滚动的文本(UITextField中文限制)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 只 一行显示可左右滚动的文本(UITextField中文限制)

只 一行显示可左右滚动的文本(UITextField中文限制)

 2015/5/8 23:32:09  幻想无极  程序员俱乐部  我要评论(0)
  • 摘要:////ViewController.m//一行显示可滚动的文本////Createdbyappleon15-5-8.//Copyright(c)2015年apple.Allrightsreserved.//#import"ViewController.h"@interfaceViewController(){UIScrollView*_scrollView;UITextField*_textField1;NSInteger_indextext;
  • 标签:限制
//
//  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]);
}

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

 

上一篇: 文本视图 下一篇: PHP 扩展开发之Zephir
发表评论
用户名: 匿名