zoukankan      html  css  js  c++  java
  • 只 一行显示可左右滚动的文本(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]);
    }

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

     上面的中文限制是有bug的当你一直输入拼音不选择汉子到一定数量汉字联想自动关闭了

    修改后链接:

     http://www.cnblogs.com/hxwj/p/4560229.html

  • 相关阅读:
    Error creating bean with name 'eurekaAutoServiceRegistration'
    CentOS 下 安装 nginx 执行配置命令 ./configure 报错
    linux解压war包的命令
    idea中如何将一个普通项目转换为maven项目(或者导入Maven项目后没反应)
    IDEA报 : Lombok Requires Annotation Processing
    IDEA中如何添加RunDashboard
    @Controller 和 @RestController 的区别
    @RequestMapping 和 @GetMapping @PostMapping 区别
    批量提取指定文件夹下的所有文件名称及其路径
    TortoiseSVN的bin目录下面没有svn.exe
  • 原文地址:https://www.cnblogs.com/hxwj/p/4488816.html
Copyright © 2011-2022 走看看