@@ -68,6 +68,7 @@ - (void)setUpInitialState {
68
68
// Create data holders for onscreen & offscreen covers & UIImage objects.
69
69
coverImages = [[NSMutableDictionary alloc ] init ];
70
70
coverImageHeights = [[NSMutableDictionary alloc ] init ];
71
+ coverImageCaptions = [[NSMutableDictionary alloc ] init ];
71
72
offscreenCovers = [[NSMutableSet alloc ] init ];
72
73
onscreenCovers = [[NSMutableDictionary alloc ] init ];
73
74
@@ -96,6 +97,18 @@ - (void)setUpInitialState {
96
97
CATransform3D sublayerTransform = CATransform3DIdentity;
97
98
sublayerTransform.m34 = -0.01 ;
98
99
[self .layer setSublayerTransform: sublayerTransform];
100
+
101
+ // Initialize Cover Caption
102
+ selectedCoverCaption = [[UITextView alloc ] init ];
103
+ selectedCoverCaption.text = @" Hello" ;
104
+ selectedCoverCaption.textColor = [UIColor whiteColor ];
105
+ selectedCoverCaption.textAlignment = UITextAlignmentCenter;
106
+ selectedCoverCaption.frame = CGRectMake (0 , 0 , 100 , 100 );
107
+ selectedCoverCaption.backgroundColor = nil ;
108
+ selectedCoverCaption.userInteractionEnabled = NO ;
109
+ [self addSubview: selectedCoverCaption];
110
+ // TODO: restrict touches to nonText area
111
+
99
112
}
100
113
101
114
- (AFItemView *)coverForIndex : (int )coverIndex {
@@ -137,7 +150,8 @@ - (void)layoutCover:(AFItemView *)aCover selectedCover:(int)selectedIndex animat
137
150
CGPoint newPosition;
138
151
139
152
newPosition.x = halfScreenWidth + aCover.horizontalPosition ;
140
- newPosition.y = halfScreenHeight + aCover.verticalPosition ;
153
+ // TODO: change based on proportion?
154
+ newPosition.y = halfScreenHeight + aCover.verticalPosition - 20 ;
141
155
if (coverNumber < selectedIndex) {
142
156
newPosition.x -= CENTER_COVER_OFFSET;
143
157
newTransform = leftTransform;
@@ -213,6 +227,7 @@ - (void)dealloc {
213
227
214
228
[coverImages release ];
215
229
[coverImageHeights release ];
230
+ [coverImageCaptions release ];
216
231
[offscreenCovers removeAllObjects ];
217
232
[offscreenCovers release ];
218
233
@@ -243,6 +258,15 @@ - (void)layoutSubviews
243
258
else
244
259
[self setSelectedCover: targetCover];
245
260
}
261
+
262
+ // TODO: constant (50 = .5 * width of text box)
263
+ CGFloat horizOrigin = contentOffset.x + halfScreenWidth - 50 ;
264
+ CGFloat vertOrigin = selectedCoverView.frame .origin .y + selectedCoverView.frame .size .width + 10 ;
265
+ selectedCoverCaption.frame = CGRectMake (horizOrigin, vertOrigin, 100 , 100 );
266
+ selectedCoverCaption.text = [NSString stringWithFormat: @" %@ " , [coverImageCaptions objectForKey: [NSNumber numberWithInt: targetCover]]];
267
+ // put it on top
268
+ [self addSubview: selectedCoverCaption];
269
+
246
270
}
247
271
248
272
#pragma mark UIScrollViewDelegate
@@ -367,6 +391,7 @@ - (void)setImage:(UIImage *)image forIndex:(int)index {
367
391
NSNumber *coverNumber = [NSNumber numberWithInt: index ];
368
392
[coverImages setObject: imageWithReflection forKey: coverNumber];
369
393
[coverImageHeights setObject: [NSNumber numberWithFloat: image.size.height] forKey: coverNumber];
394
+ [coverImageCaptions setObject: coverNumber forKey: coverNumber];
370
395
371
396
// If this cover is onscreen, set its image and call layoutCover.
372
397
AFItemView *aCover = (AFItemView *)[onscreenCovers objectForKey: [NSNumber numberWithInt: index ]];
0 commit comments