// // UITableViewCell+DropShadow.h // TableViewCellDropShadow // // Created by Kurry L Tran on 12/23/12. // Copyright (c) 2012 Kurry L Tran. All rights reserved. // #import <UIKit/UIKit.h> @interface UITableViewCell (DropShadow) -(void)addDropShadow; -(void)removeDropShadow; @end
// // UITableViewCell+DropShadow.m // TableViewCellDropShadow // // Created by Kurry L Tran on 12/23/12. // Copyright (c) 2012 Kurry L Tran. All rights reserved. // #import "UITableViewCell+DropShadow.h" #import <QuartzCore/QuartzCore.h> @implementation UITableViewCell (DropShadow) -(void)addDropShadow { self.layer.shadowOffset = CGSizeMake(0, 10); self.layer.shadowColor = [[UIColor blackColor] CGColor]; self.layer.shadowRadius = 3; self.layer.shadowOpacity = .75; CGRect shadowFrame = self.layer.bounds; CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath; self.layer.shadowPath = shadowPath; } -(void)removeDropShadow { self.layer.shadowOpacity = 0; } @end
Example Usage:
// Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } NSDate *object = _objects[indexPath.row]; cell.textLabel.text = [object description]; NSInteger numberOfSections = [self numberOfSectionsInTableView:tableView]; NSInteger numberOfRows = [self tableView:tableView numberOfRowsInSection:(numberOfSections-1)]; if (indexPath.section == (numberOfSections - 1) && indexPath.row == (numberOfRows-1)) [cell addDropShadow]; else [cell removeDropShadow]; return cell; } - (void)viewWillAppear:(BOOL)animated { NSInteger numberOfSections = [self numberOfSectionsInTableView:self.tableView]; NSInteger numberOfRows = [self tableView:self.tableView numberOfRowsInSection:(numberOfSections-1)]; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:(numberOfRows -1) inSection:(numberOfSections-1)]; UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; [cell addDropShadow]; }
Sample Project : http://bit.ly/W10XCU
No comments :
Post a Comment