rame:CGRectMake(0, 0, 30, 30)];
? ? label.font = [UIFont systemFontOfSize:25];
? ? label.text =dataArray[indexPath.row+indexPath.section*28] ;
? ?
? ?
? ? [cell.contentView addSubview:label];
? ? return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
? ? NSString * str = dataArray[indexPath.section*28+indexPath.row];
? ? //这里手动将表情符号添加到textField上
? ?
}
//翻页后对分页控制器进行更新
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
? ? CGFloat contenOffset = scrollView.contentOffset.x;
? ? int page = contenOffset/scrollView.frame.size.width+((int)contenOffset%(int)scrollView.frame.size.width==0?0:1);
? ? pageControlBottom.currentPage = page;
?
}
?
三、切换系统键盘和自定义的表情键盘
UITextField和UITextView都会有下面这个属性和方法:
@property (nullable, readwrite, strong) UIView *inputView;?
- (void)reloadInputViews;
?
inputView我们可以设置textView和textField成为第一响应时的弹出附件,如果我们不设置或者设置为nil,则会弹出系统键盘,reloadInputView方法可以使我们刷新这个附件视图,通过这两个,我们可以非常轻松的实现键盘的切换,比如我们在一个出发方法中如下处理:
-(void)imageViewTap{
? ? if (![_publishContent isFirstResponder]) {
? ? ? ? return;
? ? }
? ? if (isEmoji==NO) {
? ? ? ? isEmoji=YES;
? ? ? ? //呼出表情
? ? ? ? _textView.inputView=bgView;
? ? ? ? [_textView reloadInputViews];
? ? }else{
? ? ? ? isEmoji=NO;
? ? ? ? _textView.inputView=nil;
? ? ? ? [_textView reloadInputViews];
? ? }
?
? ?
}
效果如下:


追注:测试上面的SBUnicode码在模拟器上可以正常显示,真机并不能识别,可以通过将表情符全部添加到一个plist文件中,通过文件读取来创建键盘的方式进行真机上的开发。plist文件地址如下:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2015年资料/12月/12日/iOS自定义的emoji表情键盘/
------------------------------------------分割线------------------------------------------