第二个控制器 .h
#import <UIKit/UIKit.h>
#import "NumberofwordsTextView.h"
@interface RRZSendShowTextCell : UITableViewCell
@property (weak, nonatomic) NumberofwordsTextView *numberTextView;
@end
第二个控制器 .m
#define kTweetContentCell_ContentFont [UIFont systemFontOfSize:16]
#import "RRZSendShowTextCell.h"
@interface RRZSendShowTextCell()
@end
@implementation RRZSendShowTextCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
self.selectionStyle = UITableViewCellSelectionStyleNone;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
NumberofwordsTextView *numberTextView = [[NumberofwordsTextView alloc] init];
numberTextView.frame = CGRectMake(7, 7, SCREEN_WIDTH-7*2, 180);
numberTextView.wordsMaxNumer = 300;
numberTextView.placeHolder = @"写点什么来晒一晒吧...";
numberTextView.textFont = [UIFont systemFontOfSize:14];
[self addSubview:numberTextView];
self.numberTextView = numberTextView;
}
return self;
}
@end
第三个 .h
#import <UIKit/UIKit.h>
#import "ShowEditItem.h"
@interface RRZSendShowImageCell : UITableViewCell
@property (copy, nonatomic) void (^addPicturesBlock)();
@property (copy, nonatomic) void (^deleteImageBlock)(ShowEditItem *toDelete);
@property (nonatomic,strong) ShowEditItem *item;
@end
.m
#define kShowImageCCell_Width floorf((SCREEN_WIDTH - 15*2- 10*3)/4)
#import "RRZSendShowImageCell.h"
#import "RRZShowEditImageCell.h"
#import "UICustomCollectionView.h"
static NSString *cellID = @"RRZShowImageCCellID";
@interface RRZSendShowImageCell()<UICollectionViewDelegate,UICollectionViewDataSource>
@property (strong, nonatomic) UICustomCollectionView *mediaView;
@property (strong, nonatomic) NSMutableDictionary *imageViewsDict;
/** <#注释#>*/
@property (strong, nonatomic) NSArray *imgs;
/** <#注释#>*/
@property (weak, nonatomic) UIButton *deleteBtn;
@end
@implementation RRZSendShowImageCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.height = 300;
[self setupCollectionView];
self.selectionStyle = UITableViewCellSelectionStyleNone;
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, SCREEN_WIDTH - 20, 1)];
label.backgroundColor = RGB_COLOR(240, 240, 240);
[self.contentView addSubview:label];
}
return self;
}
-(void)setupCollectionView{
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = CGSizeMake(kShowImageCCell_Width, kShowImageCCell_Width);
self.mediaView = [[UICustomCollectionView alloc]initWithFrame:CGRectMake(15, 10, SCREEN_WIDTH - 2 * 15, 280) collectionViewLayout:layout];
self.mediaView.scrollEnabled = NO;
[self.mediaView setBackgroundColor:[UIColor clearColor]];
[self.mediaView registerNib:[UINib nibWithNibName:NSStringFromClass([RRZShowEditImageCell class]) bundle:nil] forCellWithReuseIdentifier:cellID];
self.mediaView.dataSource = self;
self.mediaView.delegate = self;
[self.contentView addSubview:self.mediaView];
}
-(void)setItem:(ShowEditItem *)item{
_item = item;
[self.mediaView reloadData];
}
#pragma mark - UICollectionViewDelegate
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
NSInteger num = self.item.selectedImages.count;
return num < 9? num+ 1: num;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
RRZShowEditImageCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
if (indexPath.row < self.item.selectedImages.count) {
cell.img = self.item.selectedImages[indexPath.row];
}else{
cell.img = nil;
}
cell.deleteBtn.tag = indexPath.row;
[cell.deleteBtn addTarget:self action:@selector(deleteBtnClick:) forControlEvents:UIControlEventTouchUpInside];
self.deleteBtn = cell.deleteBtn;
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row == self.item.selectedAssetURLs.count || indexPath.row == self.item.selectedImages.count) {
if (_addPicturesBlock) {
_addPicturesBlock();
}
}
}
-(void)deleteBtnClick:(UIButton *)btn{
NSInteger index = btn.tag;
[self.item.selectedImages removeObjectAtIndex:index];
[self.item.selectedAssetURLs removeObjectAtIndex:index];
if (_deleteImageBlock) {
_deleteImageBlock(_item);
}
}
@end










