forked from danielctull/DTGridView
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DTSnapGridView.m
54 lines (40 loc) · 1.15 KB
/
DTSnapGridView.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
// DTSnapGridView.m
// DTKit
//
// Created by Daniel Tull on 07.07.2009.
// Copyright 2009 Daniel Tull. All rights reserved.
//
#import "DTSnapGridView.h"
@interface DTSnapGridView ()
@end
@implementation DTSnapGridView
@dynamic delegate;
#if __has_feature(objc_arc)
#else
- (void)dealloc {
[decelerationTimer release];
decelerationTimer = nil;
[super dealloc];
}
#endif
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *aView in self.subviews) {
if ([aView isKindOfClass:[DTSnapGridViewCell class]]) {
DTSnapGridViewCell *v = (DTSnapGridViewCell *)aView;
v.slideAmount = (2*(v.center.x-self.contentOffset.x) + 2*v.frame.size.width - self.frame.size.width)/(self.frame.size.width - v.frame.size.width);
if (v.slideAmount > 0.5 && v.slideAmount <= 1.5 && ![v isEqual:selectedCell]) {
selectedCell = v;
}
}
}
}
- (void)didEndMoving {
[self scrollViewToRow:0 column:selectedCell.xPosition scrollPosition:DTGridViewScrollPositionMiddleCenter animated:YES];
}
- (CGFloat)findWidthForRow:(NSInteger)row column:(NSInteger)column {
NSInteger w = (NSInteger)self.frame.size.width/3.0f;
return (CGFloat)w;
}
@end