想实现的效果:

//

//  LHQsuggestionViewCtrl.m

//  A13 - 设置

//

//  Created by vic fan on 16/6/23.

//  Copyright © 2016年 李洪强. All rights reserved.

//

#import "LHQsuggestionViewCtrl.h"

#define ScreenWidth [UIScreen mainScreen].bounds.size.width

#define ScreenHeight [UIScreen mainScreen].bounds.size.height

@interface LHQsuggestionViewCtrl ()<UITextViewDelegate>

@property(nonatomic,strong)UILabel *label1;

@property(nonatomic,weak)UITextView *textView1;

@end

@implementation LHQsuggestionViewCtrl

- (void)viewDidLoad{

[super viewDidLoad];

self.title = @"意见反馈";

//  self.view.backgroundColor = [UIColor colorWithRed:239/255.0 green:239/255.0 blue:244/255.0 alpha:1];

self.view.backgroundColor = [UIColor whiteColor];

//----------------------设置带place

UITextView *textView = [[UITextView alloc] init];

self.textView1 = textView;

self.textView1.font = [UIFont systemFontOfSize:14];

self.textView1.frame =CGRectMake(20, 150,[UIScreen mainScreen].bounds.size.width -40, 200);

self.textView1.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

self.textView1.layer.borderColor = [UIColor colorWithRed:239/255.0 green:239/255.0 blue:244/255.0 alpha:1].CGColor;

self.textView1.layer.masksToBounds = YES;

self.textView1.layer.borderWidth = 1;

self.textView1.backgroundColor = [UIColor whiteColor];

//    self.modalPresentationCapturesStatusBarAppearance = NO;

//    self.edgesForExtendedLayout = UIRectEdgeNone;

//    self.extendedLayoutIncludesOpaqueBars = NO;

[self.view addSubview:self.textView1];

self.textView1.hidden = NO;

self.textView1.delegate = self;

self.automaticallyAdjustsScrollViewInsets =NO;

//其次在UITextView上面覆盖个UILable,UILable设置为全局变量。

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

self.label1 = label1;

self.label1.frame =CGRectMake(3, 3, [UIScreen mainScreen].bounds.size.width -50, 20);

self.label1.text = @"请输入您的宝贵意见,建议,我们将不断完善";

self.label1.enabled = NO;//lable必须设置为不可用

self.label1.backgroundColor = [UIColor clearColor];

self.label1.font = [UIFont systemFontOfSize:14];

[self.textView1 addSubview:self.label1];

//----------------------------------------------------------

UILabel *topLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 80, 150, 30)];

topLabel.text = @"您的宝贵建议:";

[self.view addSubview:topLabel];

}

//  实现UITextView的代理

-(void)textViewDidChange:(UITextView *)textView

{

self.textView1.text = textView.text;

if (textView.text.length == 0) {

self.label1.text = @"请输入您的宝贵意见,建议,我们将不断完善";

}else{

self.label1.text = @"";

}

}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{

self.label1.text = @"";

//  [self.label1 removeFromSuperview];

return YES;

}

- (BOOL)textViewShouldEndEditing:(UITextView *)textView{

self.label1.text = @"请输入您的宝贵意见,建议,我们将不断完善";

return YES;

}

- (void)btnClick{

NSLog(@"点击了提示");

}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

[UIView animateWithDuration:0.8 animations:^{

[self.view endEditing:YES];

}];

}

@end

自定义textView的placeholder和边框的更多相关文章

  1. ios开发之自定义textView

    自定义textView,从理论上讲很简单,根据需求自定义,比如我在开发中的需求就是现实一个字数的限制以及根据输入的文字改变提示剩余字数,那么开始我的基本思路就是自定义一个View,而里面包含一个子控件 ...

  2. 自定义TextView 调用ttf格式字体

    自定义TextView 调用ttf格式字体 1.<strong>将ttf格式文件存放在assets/fonts/下</strong> 注:PC系统字体存放在C:\Windows ...

  3. [原创]Android秒杀倒计时自定义TextView

    自定义TextView控件TimeTextView代码: import android.content.Context; import android.content.res.TypedArray; ...

  4. 安卓自定义TextView实现自动滚动

    xml文件代码 <com.mobile.APITest.ScrollEditText android:id="@+id/statusEditText" android:lay ...

  5. Android开发学习笔记-自定义TextView属性模版

    如果项目中有很多个控件使用的是同一种样式,则为了方便,可以将样式设置到系统中去,这样使用的时候会方便很多. 下面是自定义样式模版的方法. 1.在style.xml文件中添加自己要设置的样式内容 < ...

  6. 自定义TextView带有各类.ttf字体的TextView

    最近项目遇到了将普通文字转化为带有字体样式的文字,这里就涉及到了.ttf文件,我上网百度了不少资料最终终于实现了,现在想想其实并不复杂 1,你需要下载一种.ttf字体文件,你可以从网上找到一种字体的. ...

  7. Android源码分析(十二)-----Android源码中如何自定义TextView实现滚动效果

    一:如何自定义TextView实现滚动效果 继承TextView基类 重写构造方法 修改isFocused()方法,获取焦点. /* * Copyright (C) 2015 The Android ...

  8. 练习,自定义TextView(1.1)

    重新自定义TextView是非常有趣的事情,跟着Android4高级编程,通过自定义TextView,来敲一下代码: 这个是那么的简单,自定义TextView,新建CustomTextView继承Te ...

  9. 自定义textview

    #import <UIKit/UIKit.h> @class FSTextView; typedef void(^FSTextViewHandler)(FSTextView *textVi ...

随机推荐

  1. iOS:转载:同步、异步、并行、串行的详解

    理解 iOS 开发中 GCD 相关的同步(synchronization)\ 异步(asynchronization),串行(serial)\ 并行(concurrency)概念 2014年11月21 ...

  2. springmvc实现简单的拦截器

    SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方 ...

  3. Python绘制直方图 Pygal模拟掷骰子

    #coding=utf-8 from random import randint class Die(): """骰子类""" def __ ...

  4. 【笔记】js Array.prototype.slice.call(arguments) 将函数的参数转换为数组方法的见解

    我们知道函数里面的参数实际上是一个以数组形式储存的对象 但它并非一个数组 如果我们要将它转换为数组可以调用Array.prototype.slice() 这个方法 分析一下这个方法: Array.pr ...

  5. centos7安装后的防火墙问题

    centos7 默认使用firewall作为防火墙 停止并关闭开机自启动: systemctl stop firewalld.service #停止firewall systemctl disable ...

  6. Node.js mzitu图片批量下载爬虫1.00

    又攻下一座山头. //====================================================== // mzitu图片批量下载爬虫1.00 // 2017年11月19 ...

  7. java线程总结(3/5)

    一.线程同步和死锁问题 异步问题: package com.horizon.action; /** * 测试同步问题 * */ public class TestSync { public stati ...

  8. JBPM5流程设计器jbpm-designer-2.4.0.Final-tomcat.war的部署没法访问的问题

    转自:http://blog.csdn.net/steveguoshao/article/details/8840607 在http://sourceforge.net/projects/jbpm/f ...

  9. ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR

    ffmpeg -i 32_mkv_h264_718x480_ac3.mkv  -codec copy -bsf:v h264_mp4toannexb  -f mpegts xx.ts ./ffmpeg ...

  10. Json 简易教程

    一.什么是Json JSON的全称是"JavaScript Object Notation",意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式 ...