想实现的效果:

//

//  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面试题合集(77道)

    1.#import和#include的区别 @class? @class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文 件中还是需要使用#import 而#import比起#includ ...

  2. Unity3d通用工具类之解压缩文件

    今天,我们来写写c#是如何通过代码解压缩文件的. 在游戏的项目中呢,常常我们需要运用到解压缩的技术.比如,当游戏需要更新的时候,我们会从服务器中下载更新的压缩文件包. 这时候我们就需要解压文件,然后覆 ...

  3. 《Windows驱动开发技术详解》之StartIO例程

    内容中包含 base64string 图片造成字符过多,拒绝显示

  4. BZOJ3157: 国王奇遇记 & 3516: 国王奇遇记加强版

    令\[S_i=\sum_{k=1}^n k^i m^k\]我们有\[\begin{eqnarray*}(m-1)S_i & = & mS_i - S_i \\& = & ...

  5. logback中打印sql语句

    To log SQL statements for particular mybatis mapper set DEBUG (TRACE to see query parameters and res ...

  6. Servlet3.0提供的异步处理

    用属性asyncSupported=true开启Servlet对异步的支持. 在请求时,在request.startAsync()抛java.lang.IllegalStateException: N ...

  7. Linux环境搭建:2. 安装Ubuntu虚拟机

    我家淘宝店,主要协助同学做毕业设计:https://shop104550034.taobao.com/?spm=2013.1.1000126.d21.pPCzDZ 1. 创建虚拟机 1. 打开VMwa ...

  8. CardLayout使用

    相对于BoxLayout,GridBugLayut等常用的Swing layout,CardLayout是特殊的,前者是一个容器内布置组件,而后者是在一个容器内放置很多页面(但一个时间只用显示一个). ...

  9. 将织梦后台中的DATA改名称

    一.改动include中common.inc.php文件里定义data常量语句. 将当中的 data改为你须要改的名字 二.改动根文件夹下index.php中DATA值 如图 watermark/2/ ...

  10. recess----1.第一个APP-helloRecess

    选择recess的理由很简单,这个架构看起来很轻量级,很简单.至少是写起应用来感觉不需要考虑太多和架构相关的东西.没有按作者给的过程一步步来,折腾了好久...在这里记录一下. 安装过程略,官网文档无压 ...