@@ -49,7 +49,7 @@ - (id)initWithFrame:(CGRect)frame {
49
49
_tableView.clipsToBounds = NO ;
50
50
_tableView.dataSource = self;
51
51
_tableView.delegate = self;
52
- _tableView.rowHeight = 79 ; // 75 + 2 + 2
52
+ _tableView.rowHeight = 0 ;
53
53
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
54
54
[self addSubview: _tableView];
55
55
}
@@ -83,6 +83,14 @@ - (void)reloadData {
83
83
}
84
84
_numberOfThumbnails = MAX (_numberOfThumbnails, 0 );
85
85
86
+ if ([self .dataSource respondsToSelector: @selector (numberOfThumbnailsInRowForThumbnailGridView: )]) {
87
+ _numberOfThumbnailsInRow = [self .dataSource numberOfThumbnailsInRowForThumbnailGridView: self ];
88
+ }
89
+ _numberOfThumbnailsInRow = MAX (_numberOfThumbnailsInRow, 0 );
90
+
91
+ CGFloat width = (320 - (4 * (_numberOfThumbnailsInRow+1 ))) / _numberOfThumbnailsInRow;
92
+ _tableView.rowHeight = width + 4 ;
93
+
86
94
[_tableView reloadData ];
87
95
}
88
96
@@ -103,8 +111,8 @@ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
103
111
- (NSInteger )tableView : (UITableView *)tableView numberOfRowsInSection : (NSInteger )section
104
112
{
105
113
// Return the number of rows in the section.
106
- NSInteger numberOfCells = _numberOfThumbnails / 4 ;
107
- if (_numberOfThumbnails % 4 != 0 ) {
114
+ NSInteger numberOfCells = _numberOfThumbnails / _numberOfThumbnailsInRow ;
115
+ if (_numberOfThumbnails % _numberOfThumbnailsInRow != 0 ) {
108
116
numberOfCells += 1 ;
109
117
}
110
118
@@ -117,52 +125,43 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
117
125
118
126
VCThumbnailViewCell *cell = (VCThumbnailViewCell*)[tableView dequeueReusableCellWithIdentifier: CellIdentifier];
119
127
if (cell == nil ) {
120
- cell = [[[VCThumbnailViewCell alloc ] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier] autorelease ];
128
+ cell = [[[VCThumbnailViewCell alloc ] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier thumbnailCount: _numberOfThumbnailsInRow ] autorelease ];
121
129
cell.accessoryType = UITableViewCellAccessoryNone;
122
130
cell.selectionStyle = UITableViewCellSelectionStyleNone;
123
131
}
124
132
125
133
// Configure the cell...
126
- int indexOfImage = indexPath.row * 4 ;
127
- if ([self .dataSource respondsToSelector: @selector (thumbnailGridView:imageAtIndex: )]) {
128
- if (indexOfImage < _numberOfThumbnails) {
129
- [cell.imageView1 setImage: [self .dataSource thumbnailGridView: self imageAtIndex: indexOfImage]];
130
- cell.imageView1 .tag = indexOfImage++;
131
- [cell.imageView1 addTarget: self withSelector: @selector (didTapImageThumbnail: )];
132
- }
133
- if (indexOfImage < _numberOfThumbnails) {
134
- [cell.imageView2 setImage: [self .dataSource thumbnailGridView: self imageAtIndex: indexOfImage]];
135
- cell.imageView2 .tag = indexOfImage++;
136
- [cell.imageView2 addTarget: self withSelector: @selector (didTapImageThumbnail: )];
137
- }
138
- if (indexOfImage < _numberOfThumbnails) {
139
- [cell.imageView3 setImage: [self .dataSource thumbnailGridView: self imageAtIndex: indexOfImage]];
140
- cell.imageView3 .tag = indexOfImage++;
141
- [cell.imageView3 addTarget: self withSelector: @selector (didTapImageThumbnail: )];
142
- }
143
- if (indexOfImage < _numberOfThumbnails) {
144
- [cell.imageView4 setImage: [self .dataSource thumbnailGridView: self imageAtIndex: indexOfImage]];
145
- cell.imageView4 .tag = indexOfImage++;
146
- [cell.imageView4 addTarget: self withSelector: @selector (didTapImageThumbnail: )];
147
- }
148
- }
134
+ int indexOfImage = indexPath.row * _numberOfThumbnailsInRow;
149
135
150
- indexOfImage = indexPath.row * 4 ;
151
- if ([self .dataSource respondsToSelector: @selector (thumbnailGridView:imageUrlAtIndex: )]) {
152
- if (indexOfImage < _numberOfThumbnails) {
153
- [cell.imageView1 setImageUrl: [self .dataSource thumbnailGridView: self imageUrlAtIndex: indexOfImage++]];
154
- }
155
- if (indexOfImage < _numberOfThumbnails) {
156
- [cell.imageView2 setImageUrl: [self .dataSource thumbnailGridView: self imageUrlAtIndex: indexOfImage++]];
157
- }
158
- if (indexOfImage < _numberOfThumbnails) {
159
- [cell.imageView3 setImageUrl: [self .dataSource thumbnailGridView: self imageUrlAtIndex: indexOfImage++]];
160
- }
161
- if (indexOfImage < _numberOfThumbnails) {
162
- [cell.imageView4 setImageUrl: [self .dataSource thumbnailGridView: self imageUrlAtIndex: indexOfImage++]];
136
+ VCThumbnailButton *thumbnail = nil ;
137
+ for (int i = 0 ; i < _numberOfThumbnailsInRow; i++) {
138
+ thumbnail = [cell.thumbnails objectAtIndex: i];
139
+
140
+ if ([self .dataSource respondsToSelector: @selector (thumbnailGridView:imageAtIndex: )]) {
141
+ if (indexOfImage < _numberOfThumbnails) {
142
+ [thumbnail setImage: [self .dataSource thumbnailGridView: self imageAtIndex: indexOfImage]];
143
+ thumbnail.tag = indexOfImage++;
144
+ [thumbnail addTarget: self withSelector: @selector (didTapImageThumbnail: )];
145
+ }
163
146
}
164
147
}
165
148
149
+ //
150
+ // if ([self.dataSource respondsToSelector:@selector(thumbnailGridView:imageUrlAtIndex:)]) {
151
+ // if (indexOfImage < _numberOfThumbnails) {
152
+ // [cell.imageView1 setImageUrl:[self.dataSource thumbnailGridView:self imageUrlAtIndex:indexOfImage++]];
153
+ // }
154
+ // if (indexOfImage < _numberOfThumbnails) {
155
+ // [cell.imageView2 setImageUrl:[self.dataSource thumbnailGridView:self imageUrlAtIndex:indexOfImage++]];
156
+ // }
157
+ // if (indexOfImage < _numberOfThumbnails) {
158
+ // [cell.imageView3 setImageUrl:[self.dataSource thumbnailGridView:self imageUrlAtIndex:indexOfImage++]];
159
+ // }
160
+ // if (indexOfImage < _numberOfThumbnails) {
161
+ // [cell.imageView4 setImageUrl:[self.dataSource thumbnailGridView:self imageUrlAtIndex:indexOfImage++]];
162
+ // }
163
+ // }
164
+
166
165
return cell;
167
166
}
168
167
0 commit comments