【发布时间】:2012-02-26 16:03:17
【问题描述】:
我有描述,单元格中的标题..有些标题有描述,有些没有。我想根据描述为行设置动画(增加大小),如果没有描述,则单元格不应该增加大小,就像有描述一样,单元格应该增加。标题和描述的数据是从 sql db 中获取的。我已经创建了动画部分,我在增加描述部分的单元格大小时遇到了麻烦.. - (void)tableViewUITableView *)tableView cellForRowIndexNSIndexPath *)indexPath 我已经定义从 descriptionArray 中获取值的 descriptionlabel
- (BOOL)cellIsSelected:(NSIndexPath *)indexPath;
@end
@implementation LOAnimatedCellDemoViewController
#define kCellHeight 50.0
- (void)viewDidLoad {
[super viewDidLoad];
selectedIndexes = [[NSMutableDictionary alloc] init];
}
- (void)viewDidUnload {
[selectedIndexes release];
selectedIndexes = nil;
[super viewDidUnload];
}
- (BOOL)cellIsSelected:(NSIndexPath *)indexPath {
// Return whether the cell at the specified index path is selected or not
NSNumber *selectedIndex = [selectedIndexes objectForKey:indexPath];
return selectedIndex == nil ? FALSE : [selectedIndex boolValue];
}
#pragma mark -
#pragma mark Tableview Datasource Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 20;
}
#pragma mark -
#pragma mark Tableview Delegate Methods
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Deselect cell
[tableView deselectRowAtIndexPath:indexPath animated:TRUE];
// Toggle 'selected' state
BOOL isSelected = ![self cellIsSelected:indexPath];
// Store cell 'selected' state keyed on indexPath
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[selectedIndexes setObject:selectedIndex forKey:indexPath];
// This is where magic happens...
[demoTableView beginUpdates];
[demoTableView endUpdates];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// If our cell is selected, return double height
if([self cellIsSelected:indexPath]) {
return kCellHeight * 2.0;
}
// Cell isn't selected so return single height
return kCellHeight;
}
@end
【问题讨论】:
标签: iphone objective-c xcode ipad ios5