zoukankan      html  css  js  c++  java
  • textView的提醒文字

    如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现

    1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情况

    2.textView可以自动适配多文字输入,但是没有提醒文字,这也不符合我们设计的需求

    下面就有一种解决方法,话不多说,直接上代码

    #import "YSCreateScheduleRemarkView.h"

    #import "Masonry.h"

     

    @interface YSCreateScheduleRemarkView ()

     

    @end

     

    @implementation YSCreateScheduleRemarkView

     

    - (instancetype)initWithFrame:(CGRect)frame {

     

        if (self = [super initWithFrame:frame]) {

            

            [self initUI];

        }

        

        return self;

    }

     

    - (void)initUI {

     

        self backgroundColor = [UIColor whiteColor];

        _textView = [[UITextView alloc] init];

        _textView.font = [UIFont systemFontOfSize:15];

        [self addSubview:_textView];

        [_textView mas_makeConstraints:^(MASConstraintMaker *make) {

            

            make.top.mas_equalTo(self.mas_top);

            make.left.mas_equalTo(self.mas_left).offset(10);

            make.bottom.mas_equalTo(self.mas_bottom);

            make.right.mas_equalTo(self.mas_right).offset(-10);

        }];

    }

     

    - (void)setplaceholder:(NSString *)placeholder {

     

        UILabel *placeholderLabel = [[UILabel alloc] init];

        placeholderLabel.text = placeholder;

        placeholderLabel.numberOfLines = 1;

        placeholderLabel.textColor = [UIColor lightGrayColor];

        [placeholderLabel sizeToFit];

        placeholderLabel.font = _textView.font;

        [_textView addSubview:placeholderLabel];

        [_textView setValue:placeholderLabel forKey:@"_placeholderLabel"];

    }

     

    @end

     

    #import "ViewController.h"

    #import "YSCreateScheduleRemarkView.h"

     

    @interface ViewController ()<UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate, UITextViewDelegate>

    {

        UITableView *table;

    }

    @property (nonatomic, strong) YSCreateScheduleRemarkView *createScheduleRemarkView;

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

        self.view.backgroundColor = [UIColorwhiteColor];

        table = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStyleGrouped];

        table.delegate = self;

        table.dataSource = self;

        [self.view addSubview:table];

        [table registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CreateScheduleCell"];

        

        

    }

    -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    {

        return  4;

    }

    -(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

    {

        return 0.01;

    }

    -(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

    {

        return 135;

    }

    - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

        

        _createScheduleRemarkView = [[YSCreateScheduleRemarkView alloc] init];

        _createScheduleRemarkView.textView.delegate = self;

        [_createScheduleRemarkView setplaceholder:@"备注"];

        return _createScheduleRemarkView;

    }

    -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CreateScheduleCell"];

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CreateScheduleCell"];

        cell.textLabel.text = @"12111";

        return cell;

    }

    - (void)textViewDidBeginEditing:(UITextView *)textView {

        

        [self showKeyboardManager:1]:

    }

     

    - (void)textViewDidEndEditing:(UITextView *)textView {

        

        [self showKeyboardManager:0];

    }

     

    - (void)showKeyboardManager:(NSInteger)integer {

        

        [UIView animateWithDuration:0.2f animations:^{

            

            table.frame = CGRectMake(0, integer == 1 ? -44*4 : 0, 375, 667);

        }];

    }

  • 相关阅读:
    斜二进制数
    贝贝的波浪数
    1058: 电文保密
    1065: 贝贝的加密工作
    低危漏洞- X-Frame-Options Header未配置
    1064: 不明飞行物(ufo)
    支付
    1067: 密室寻宝(find)
    c++10进制转换为任意2-16进制数字
    1066: 单词游戏(game)
  • 原文地址:https://www.cnblogs.com/lcl15/p/6240071.html
Copyright © 2011-2022 走看看