用户反馈

用户反馈, 输入用户反馈信息的时候, 会有如下图所示的需求:

输入框可以多行输入, 并且包含占位文字, UITextField可以有占位符 但不支持多行输入, 所以不能使用UITextField. UITextView可以多行输入, 只需要添加上占位文字功能即可.

声明文件如下:.h文件

 1 #import <UIKit/UIKit.h>
 2
 3 @interface PlaceholderTextView : UITextView
 4
 5 @property (nonatomic, strong) UILabel * placeHolderLabel;
 6
 7 @property (nonatomic, copy) NSString * placeholder;
 8
 9 @property (nonatomic, strong) UIColor * placeholderColor;
10
11 - (void)textChanged:(NSNotification * )notification;
12
13 @end

实现文件如下:.m文件

 1 #import "PlaceholderTextView.h"
 2
 3 @implementation PlaceholderTextView
 4
 5 -(instancetype)initWithFrame:(CGRect)frame{
 6
 7     if (self = [super initWithFrame:frame]) {
 8
 9         [self setPlaceholder:@""];
10
11         [self setPlaceholderColor:[UIColor lightGrayColor]];
12
13         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
14
15     }
16
17     return self;
18 }
19
20 -(void)setPlaceholder:(NSString *)placeholder{
21
22     if (_placeholder != placeholder) {
23
24         _placeholder = placeholder;
25
26         [self.placeHolderLabel removeFromSuperview];
27
28         self.placeHolderLabel = nil;
29
30         [self setNeedsDisplay];
31
32
33     }
34
35 }
36
37 - (void)textChanged:(NSNotification *)notification{
38
39     if ([[self placeholder] length] == 0) {
40         return;
41     }
42
43     if ([[self text] length] == 0) {
44         [[self viewWithTag:999] setAlpha:1.0];
45     }
46
47     else{
48
49         [[self viewWithTag:999] setAlpha:0];
50     }
51
52 }
53
54 -(void)drawRect:(CGRect)rect{
55
56     [super drawRect:rect];
57
58     if ([[self placeholder] length] > 0) {
59         if (_placeHolderLabel == nil) {
60             _placeHolderLabel = [[UILabel alloc]initWithFrame:CGRectMake(8, 8, self.bounds.size.width - 16, 0)];
61             _placeHolderLabel.lineBreakMode = NSLineBreakByWordWrapping;
62             _placeHolderLabel.numberOfLines = 0;
63             _placeHolderLabel.font = self.font;
64             _placeHolderLabel.backgroundColor = [UIColor clearColor];
65             _placeHolderLabel.textColor = self.placeholderColor;
66             _placeHolderLabel.alpha = 0;
67             _placeHolderLabel.tag = 999;
68             [self addSubview:_placeHolderLabel];
69         }
70         _placeHolderLabel.text = self.placeholder;
71         [_placeHolderLabel sizeToFit];
72         [self sendSubviewToBack:_placeHolderLabel];
73     }
74
75     if ([[self text] length] == 0 && [[self placeholder] length] >0) {
76         [[self viewWithTag:999] setAlpha:1.0];
77     }
78
79 }
80
81
82
83 @end
时间: 2024-08-09 02:40:30

用户反馈的相关文章

iOS:移动端“用户反馈和客服”的几个平台SDK的介绍

简单阐述: 用户反馈功能几乎是每个app都有的一个功能点,通过反馈功能实现与用户的连接.沟通,随时随地收集用户意见反馈和Bug报告,即时和用户保持沟通,在一定程度上提升了app的竞争力.而给app评分也是一个常见的功能.在目前的技术实现中,有那么几个平台SDK可供使用,分别是:网易七鱼.Bugtags.Instabug.微客服.环信客服.融云客服.阿里百川等. 平台SDK: 1.网易七鱼: 介绍: 无缝融合多渠道 在线客服.呼叫中心.客服机器人.工单系统,由表及里全面打造高效的客户服务体系. 文

平台建设-用户反馈跟踪模块

目标:在产品灰度或者发布后,能快速收集用户反馈信息,跟踪问题.并做每个迭代的反馈跟进,反思和追踪问题原因,如何避免等问题. 途径:爬虫获取bbs的反馈信息 以浏览器为例子: 1.技术分析,获取用户反馈爬虫用的是Jsoup,看下列关键代码: 把a标签包含所需关键字的反馈加入反馈列表,获取a标签的text和href.具体爬虫要自己看看html结构 Document doc = Jsoup.connect(url).post(); Elements ss=doc.getElementsByTag("a

友盟用户反馈自定义UI-Android

友盟用户反馈SDK是友盟为开发者提供的组件之一,用户反馈也是每款应用必不可少的模块.如果你想方便的收集用户的反馈建议,并且与发送反馈的用户进行沟通交流,那么友盟用户反馈SDK是你不错的选择,使用友盟用户反馈SDK两行代码实现开发者和用户轻松高效沟通.从友盟BBS看到许多开发者都希望通过自定义UI,来实现用户反馈功能.下面就为大家来讲解如何使用友盟用户反馈SDK来制定UI.这里以一个demo来说明. 首先上图,这是自定义的UI界面: 注:部分资源文件来源于某开源App 使用友盟用户反馈的数据接口,

UMeng SDK(友盟) 之 用户反馈

好久没有更新了...忙于大学毕业的那些事(写论文,答辩,吃饭,拍照,喝酒,找租房,搬家...) 已然毕业,好好回归自己的职业.深入底层,不漂流于浮表. ok.切入正题:使用的是UMeng的移动开发SDK.收集用户反馈是通过友盟开发者的应用管理后台. 首先是继承android平台的. http://dev.umeng.com/feedback/android/quick-start 通过这个集成指南的地址,我顺利的完成了最基本的功能需求. 首先是添加jar包依赖,以及将res文件夹中的资源copy

Android NDK开发(八)——应用监听自身卸载,弹出用户反馈调查

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42521251 监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可

Sprint 5 summary: UI 界面更新,Azure端部署和用户反馈分析 12/28/2015

本次sprint主要完成的任务有对手机APP的UI界面的更新,同时对Azure客户端的部署进行了相应的学习和有关的程序设计.同时对于ALPHA release的用户反馈做出相应的分析以确定接下来工作的重点. 工作进度: 1. UI 的界面更新和完善工作主要由兆阳负责,主要是对APP中的自动标签和浏览布局进行了相应的改进.其中大部分与Sprint2中的界面有所区别,并且对整体的APP工作性能有了一些改善.相应的改进feature有如下: 1). 个人活动分类浏览: 其中将用户的各个照片依据内容,时

项目迁移腾讯云后,用户反馈,https证书不匹配。

腾讯云大禹高防大禹BGP同一IP绑定多个证书,用户反馈无法匹配我们域名对应证书.但是浏览器是支持的.定位为客户端不支持sni在运维检查lb及高防证书关联无误,定位发现是用户端httpclient没有设置ssl.最终解决方案:不明确用户jdk版本,设置httpclient忽略证书验证. 引用: http://ju.outofmemory.cn/entry/115735 HTTPS和SNI HTTPS证书签名 ============================= 的前端代理服务器时候,通常会遇

记我兵荒马乱的一周(0808-0812)--用户反馈及修改点验证

夜深了,但我还不愿睡去,总觉得应该对上周那五天兵荒马乱的工作生活做个总结备忘,心里有个底,才能睡得踏实. 上周主要做了3件事,那便一个个讲起. 第一件事:测试用例的执行 在这件事上,没有出太大的问题,基本是属于回归测试和冒烟测试,因为是很成熟的产品,回归一般问题比较少,冒烟测试的话,新开发出的软件BUG很多,找起来也相对容易. 不过作为下周的常规工作之一,还是需要注意以下几点 : 1. 提升用例执行的速度,每次的用例,执行起来都会有一些不懂意思的或不知道如何执行的,或许跟其他人交流下最开始是如何

如何让你的用户反馈更简单

有用户问题我,什么时候推出像知乎 iOS 客户端那样面向普通用户的摇一摇反馈功能,其实通过 Bugtags 的提供的接口完全可以自主实现这个功能,而且非常简单. 下图是知乎 iOS 客户端摇一摇后弹出的反馈提示 点击遇到问题,就会自动截屏,然后用户就可以提交问题啦. 那么怎么通过 Bugtags 来实现这样的用户反馈呢?这里就需要用到 Bugtags 的手动调用接口: /** * 手动调用截屏界面 * @return none */ + (void)invoke; 我们只需获取应用的摇一摇事件,