CELL_PHOTO_IDENTIFIER
# define CELL_PHOTO_IDENTIFIER @"photoLibraryCell"
# define CLOSE_PHOTO_IMAGE @"close"
# define ADD_PHONE_IMAGE @"photo"
- (ALAssetsLibrary *) defaultAssetLibrairy {
static ALAssetsLibrary *assetLibrairy;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
assetLibriry =[[ALAssetsLibrary alloc]init];
});
return (assetLibrary);
}
- (BOOL) shouldAutorotate {
return (false);
}
- (void) postMessage {
RRMessageModel *modelMessage = [[RRMessageModel alloc]init];
modelMessage.text = self.textView.text;
modelMessage.photos = self.selectedPhotos;
if(self.completion != nil) {
self.completion(modelMessage, false);
}
if([self.delegate respondsToSelector:@selector(getMessage:)])
{
[self.delegate getMessage:modelMessage];
}}
- (void) cancelMessage {
if([self.delegate respondsToSelector:@selector(messageCancel)]) {
[self.delegate messageCancel];
}
if(self.completion != nil) {
self.completion(nil, true);
}
}
- (void) textViewDidChange :(UITextView *)textView {
self.numberLine.text = [NSString stringWithFormat:@"%lu", (unsigned long)self.textView.text.length];
}
- (NSInteger) collectionView:(UICollectionView *) {
return (self.photosThumnailLIbray.count);
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCellPhoto *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CELL_PHOTO_IDENTIFIER forIndexPath:indexPath];
cell.photo.image = [self.photosThumbnailLibrary objectAtIndex:indexPath.row];
return (cell);
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
if(self.numberPhoto != -1 && self.selectedPhotos.count >= self.numberPhoto) {
return;
}
if(self.selectedPhotos.count == 0) {
CGFloat positionY = self.textView.frame.origin.y + self.textView./frame.size.height/2;
CGFloat sizeHeight = self.textView.frame.size.height /2;
[UIView animateWIthDuration:0.5 animations:^{
self.textView.frame = CGRectMake(self.textView.frame.origin.x, self.textView.frame.orin.y, self.textView.frame.size.width,self.textView.frame.size.height/2);
} completion:^(BOOL finished) {
NSRange bottom = NSMakeRange(self.textView.text.length -1 , 1);
[self.textView scrollRangeToVisible:bottom];
}] ;
}
}
CELL_PHOTO_IDENTIFIER的更多相关文章
随机推荐
- 排序算法c语言描述---堆排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序.具体思路分析不 ...
- mysqldump备份数据库时出现when using LOCK TABLES
用mysqldump备份数据库时,如果出现when using LOCK TABLES,解决办法是加上 --skip-lock-tables 例如: 用mysqldump备份数据库时出现 29: Fi ...
- BootStrap table 传递搜索参数
看bootStrap table文档不难发现它有一个queryparams属性,是向后台传递参数的,默认参数已有pageSize.pageIndex等,那么怎么传递自定义的参数呢?在网上找了好多也没有 ...
- Eclipse 每行 80 字符限制的提示线
有时候希望eclipse和C++编辑器之类有条对齐线 打开 Eclipse, Windows -> Prefereces -> General -> Editors -> Te ...
- 关于oracle的函数,存储过程,触发器,序列,视图,左右连接一些的应用 带案例
CREATE TABLE STUDENT( --创建学生表 ID NUMBER(10) PRIMARY KEY, --主键ID NAME VARCHAR2(20), CLASSNAME VA ...
- instanceof的用法②
其实这个问题以前也困扰过我.我个人理解的一个应用场合就是,当你拿到一个对象的引用时(例如参数), 你可能需要判断这个引用真正指向的类.所以你需要从该类继承树的最底层开始,使用instanceof操作符 ...
- 国人编写的开源 .net Ioc 框架——My.Ioc 简介
My.Ioc 是作者开发的一款开源 IoC/DI 框架,下载地址在此处.它具有下面一些特点: 高效 在实现手段上,My.Ioc 通过使用泛型.缓存.动态生成代码.延迟注册.尽量使用抽象类而非接口等方式 ...
- asp.net模态窗口返回值
个人感觉模态窗口在做网站的时候,使用到的比较少,前段时间在做项目时要实现以模态窗口传值和接收返回值, 模态窗口传值实现比较简单,但是做好后发现在Chrome浏览器中接收不到返回值,修改好Chrome浏 ...
- DATEDIFF interval=ms的用法
datediff(ms,@CurrDateTime,@Date)>0 当上面的日期超过24天,用上面的sql会有问题 要修改成如下: (CONVERT(VARCHAR,@CurrDateTime ...
- IIViewDeckController的使用,左右拖拉菜单效果实现
博客园 IIViewDeckController的使用,左右拖拉菜单效果实现 很多应用里面都实现了对应的侧拉 显示隐藏的效果,看起来很符合用户体验的类似于这种 看起来很好看,今天去晚上搜下 ...