//
// SetNoteViewController.h
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/3/17.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import "ParentsViewController.h"
@interface SetNoteViewController : ParentsViewController
@property (nonatomic,strong) UILabel * titleLabel;
@property (nonatomic) int searchType;
@property (nonatomic,copy) NSString *NameField;
@property (nonatomic,copy) NSString * friendIDStr;
@end
//
// SetNoteViewController.m
// HengTaiXinGolf
//
// Created by 欧阳荣 on 16/3/17.
// Copyright © 2016年 HengTaiXinGolf. All rights reserved.
//
#import "SetNoteViewController.h"
#define kHZMaxLength 15
#define kEGMaxLength 15
@interface SetNoteViewController ()
@end
@implementation SetNoteViewController
{
UITextField * _nameField;
}
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil];
if (self)
{
//[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];
UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0 , 100, 44)];
titleLabel.backgroundColor = [UIColor clearColor]; //设置Label背景透明
titleLabel.font = [UIFont boldSystemFontOfSize:KTitle]; //设置文本字体与大小
titleLabel.textColor = [UIColor whiteColor]; //设置文本颜色
titleLabel.textAlignment = NSTextAlignmentCenter;
titleLabel.text = @"备注信息"; //设置标题
self.navigationItem.titleView = titleLabel;
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor=kColor(234, 234, 243);
if (self.searchType == 1) {
[self createBackBtn];
}else{
[self creatBackItem];
[self createRightBtn];
}
[self creatSaveView];
}
//增加修改框
-(void)creatSaveView{
UILabel * lab = [[UILabel alloc]init];
if (self.searchType == 1) {
lab.frame = CGRectMake(14, 8 * KWIDTH + 64, IPHONE_WIDTH - 100, 16 * KWIDTH);
}else{
lab.frame = CGRectMake(14, 8 * KWIDTH, IPHONE_WIDTH - 100, 16 * KWIDTH);
}
lab.text = @"备注名";
lab.font = [UIFont systemFontOfSize:14];
lab.textColor = kColor(137, 137, 137);
[self.view addSubview:lab];
UIView *view=[[UIView alloc] init];
if (self.searchType == 1) {
view.frame = CGRectMake(0, 32*KWIDTH + 64, IPHONE_WIDTH, 40*KWIDTH);
}else{
view.frame = CGRectMake(0, 32*KWIDTH, IPHONE_WIDTH, 40*KWIDTH);
}
UIView *lineViewlight3=[[UIView alloc] initWithFrame:CGRectMake(0,0, IPHONE_WIDTH, 0.5)];
lineViewlight3.backgroundColor=kColor(200,200 , 200);
lineViewlight3.alpha=0.8;
[view addSubview:lineViewlight3];
UIView *lineViewlight4=[[UIView alloc] initWithFrame:CGRectMake(0, 40*KWIDTH-0.5, IPHONE_WIDTH, 0.5)];
lineViewlight4.backgroundColor=kColor(200,200 , 200);
lineViewlight4.alpha=0.7;
[view addSubview:lineViewlight4];
view.backgroundColor=[UIColor whiteColor];
_nameField = [[UITextField alloc]initWithFrame:CGRectMake(10*KWIDTH, 0, IPHONE_WIDTH-15*KWIDTH, 40*KWIDTH)];
_nameField.text = self.NameField;
_nameField.borderStyle = UITextBorderStyleNone;
_nameField.clearButtonMode= UITextFieldViewModeAlways;
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
name:@"UITextFieldTextDidChangeNotification"
object:_nameField];
[view addSubview:_nameField];
[self.view addSubview:view];
}
-(void)textFiledEditChanged:(NSNotification*)obj{
UITextField *textField = (UITextField *)obj.object;
//过滤掉系统表情
// UITextView * textView;
//
// NSRange textRange = [textView selectedRange];
// [textView setText:[self disable_emoji:[textView text]]];
// [textView setSelectedRange:textRange];
NSString *toBeString = textField.text;
DSLog(@"-----toBeString 1 ----%@",toBeString);
BOOL isEmoj = [self stringContainsEmoji:toBeString];
NSString * _showStr;
toBeString = [self disable_emoji:toBeString];
// textField.text = toBeString;
DSLog(@"-----toBeString 2 -----%@",toBeString);
NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式
if([lang isEqualToString:@"zh-Hans"]) { //简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [textField markedTextRange];
//获取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
//没有高亮选择的字,则对已输入的文字进行字数统计和限制
if(!position) {
if(toBeString.length > kHZMaxLength) {
textField.text = [toBeString substringToIndex:kHZMaxLength];
_showStr = [toBeString substringToIndex:kHZMaxLength];
}
}
//有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
}
//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{
if(toBeString.length > kEGMaxLength) {
textField.text= [toBeString substringToIndex:kEGMaxLength];
_showStr = [toBeString substringToIndex:kEGMaxLength];
}
}
DSLog(@" _showStr %@",_showStr);
if (isEmoj) {
if ([_showStr length]) {
textField.text = _showStr;
}else{
textField.text = toBeString;
}
}
}
//判断NSString字符串是否包含emoji表情
- (BOOL)stringContainsEmoji:(NSString *)string
{
__block BOOL returnValue =NO;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
const unichar hs = [substring characterAtIndex:0];
// surrogate pair
if (0xd800) {
if (0xd800 <= hs && hs <= 0xdbff) {
if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <= 0x1f77f) {
returnValue =YES;
}
}
}else if (substring.length > 1) {
const unichar ls = [substring characterAtIndex:1];
if (ls == 0x20e3) {
returnValue =YES;
}
}else {
// non surrogate
if (0x2100 <= hs && hs <= 0x27ff) {
returnValue =YES;
}else if (0x2B05 <= hs && hs <= 0x2b07) {
returnValue =YES;
}else if (0x2934 <= hs && hs <= 0x2935) {
returnValue =YES;
}else if (0x3297 <= hs && hs <= 0x3299) {
returnValue =YES;
}else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
returnValue =YES;
}
}
}
}];
return returnValue;
}
#pragma Mark --- 过滤表情
- (NSString *)disable_emoji:(NSString *)text
{
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]" options:NSRegularExpressionCaseInsensitive error:nil];
NSString *modifiedString = [regex stringByReplacingMatchesInString:text
options:0
range:NSMakeRange(0, [text length])
withTemplate:@""];
return modifiedString;
}
//增加右键发表保存按钮
-(void)createRightBtn{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0, 0, 40, 20);
[btn setTitle:@"完成" forState:UIControlStateNormal];
[btn setFont:[UIFont systemFontOfSize:KTitle]];
[btn addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithCustomView:btn];
self.navigationItem.rightBarButtonItem = item;
}
-(void)rightBtnClicked{
NSString *urlStr = [NSString stringWithFormat:KmodifyFriendNameRemark];
if ([_nameField.text length] < 21 && [_nameField.text length]>=1) {
[self setCustomizedClubInfoRequest:urlStr];
}else if ([_nameField.text length]==0)
{
// UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"不能为空" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
// [alertView show];
[self setCustomizedClubInfoRequest:urlStr];
}
else
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"超过字符限制" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alertView show];
}
}
-(void)setCustomizedClubInfoRequest:(id)sender
{
AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];
man.responseSerializer = [AFHTTPResponseSerializer serializer];
man.requestSerializer = [AFJSONRequestSerializer serializer];//用json格式来上传参数
NSString *paraString = [MD5 encodeString:_nameField.text];
NSMutableDictionary *param = [NSMutableDictionary dictionary];
[param setValue:KmemberId forKey:@"memberId"];
[param setValue:self.friendIDStr forKey:@"friendId"];
[param setValue:_nameField.text forKey:@"nameRemark"];
[param setValue:KAPPID forKey:@"appId"];
[param setValue:KappSecret forKey:@"appSecret"];
[param setValue:[CommonTools getTimeScamp] forKey:@"timestamp"];
[param setValue:[CommonTools tokenmd5StringFromArray:@[[NSString stringWithFormat:@"memberId%@",param[@"memberId"]],[NSString stringWithFormat:@"friendId%@",param[@"friendId"]],[NSString stringWithFormat:@"nameRemark%@",paraString],[NSString stringWithFormat:@"appId%@",param[@"appId"]],[NSString stringWithFormat:@"appSecret%@",param[@"appSecret"]],[NSString stringWithFormat:@"timestamp%@",param[@"timestamp"]]]] forKey:@"digest"];
[man POST:sender parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
DSLog(@"--------dict------%@",dict);
if ([dict[@"returnCode"]integerValue]==000000) {
[WFHudView showMsg:@"好友备注修改成功!" inView:nil];
[UserModel sharedInstance].isAddFriends = @"modifyFriendNameRemark";
[[NSNotificationCenter defaultCenter]postNotificationName:@"AgreeMentAddFriend" object:nil];
if (self.searchType == 1) {
[self dismissViewControllerAnimated:NO completion:nil];
}else{
[self.navigationController popViewControllerAnimated:NO];
}
}else{
[WFHudView showMsg:@"好友备注修改失败!" inView:nil];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error %@",error);
}];
}
-(void)createBackBtn{
//自定义导航栏
UIImageView *navImgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, IPHONE_WIDTH, 64)];
navImgView.image = [UIImage imageNamed:@"top_bg"];
[self.view addSubview:navImgView];
//自定义导航栏标题
self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(IPHONE_WIDTH/2-100, 5 , 200, 64)];
self.titleLabel.text = @"备注信息";
self.titleLabel.backgroundColor = [UIColor clearColor]; //设置Label背景透明
self.titleLabel.font = [UIFont boldSystemFontOfSize:KTitle]; //设置文本字体与大小
self.titleLabel.textColor = [UIColor whiteColor]; //设置文本颜色
self.titleLabel.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.titleLabel];
//返回键
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
backBtn.frame = CGRectMake(6, 64/7 + 6, 40, 64*5/7);
[backBtn setImage:[UIImage imageNamed:@"title_bar_back"] forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(popViewController) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:backBtn];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(IPHONE_WIDTH - 60, 27, 40, 20);
[btn setTitle:@"完成" forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:16];
// btn.titleLabel.textColor = [UIColor redColor];
// [btn setFont:[UIFont systemFontOfSize:KTitle]];
[btn addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
//创建返回按钮
-(void)creatBackItem{
// CGFloat frameY = 0.0f;
UIBarButtonItem * leftItem = nil;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
// frameY = 0.0f;
leftItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"title_bar_back"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStyleDone target:self action:@selector(returnClicked)];
} else {
// frameY = 0.0f;
leftItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"title_bar_back"] style:UIBarButtonItemStyleDone target:self action:@selector(returnClicked)];
}
self.navigationItem.leftBarButtonItem = leftItem;
}
-(void)returnClicked {
[self.navigationController popViewControllerAnimated:NO];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end