redribben icon

for switch viewing

redribben | PRO | 02/01/15 03:49:09 AM UTC | 0 ⭐ | 414 👁️ | Never ⏰ | []
Objective C |

0 B

|

None

|

0 👍

/

0 👎

//
//  ViewController.m
//  IBcells
//
//  Created by Bogdan Michalchuk on 1/25/15.
//  Copyright (c) 2015 PDXRR. All rights reserved.
//
 
#import "ViewController.h"
#import "BMOptionCell.h"
#import "BMSettings.h"
 
@interface ViewController ()
 
@property (nonatomic) BOOL expand;
 
@end
 
 
@implementation ViewController {
    NSArray *tableCellArray;
    BMSettings* settingSetup;
}
 
@synthesize selectedRowNumber;
@synthesize rowExpanded;
@synthesize objCellClicked;
@synthesize expandedCell;
 
- (instancetype) initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        settingSetup = [[BMSettings alloc] init];
    }
    return self;
}
 
- (void)viewDidLoad {
    [super viewDidLoad];
    self.selectedRowNumber = -1;  // Makes sure that row = nil doesnt expand
    self.rowExpanded = -1;
    tableCellArray =  [settingSetup getArray];
    
    self.tableView.dataSource = self;
    self.tableView.delegate = self;
 
    // Assign our own backgroud for the view
    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"common_bg"]];
    self.tableView.backgroundColor = [UIColor clearColor];
}
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return tableCellArray.count;
}
 
- (UIImage *)cellBackgroundForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSInteger rowCount = [self tableView:[self tableView] numberOfRowsInSection:0];
    NSInteger rowIndex = indexPath.row;
    UIImage *background = nil;
    
    if (rowIndex == 0) {
        background = [UIImage imageNamed:@"cell_top.png"];
    } else if (rowIndex == rowCount - 1) {
        background = [UIImage imageNamed:@"cell_bottom.png"];
    } else {
        background = [UIImage imageNamed:@"cell_middle.png"];
    }
    
    return background;
}
 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    BMOptionCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    cell.cellSwitch.UDKey = [(BMSettings *)[tableCellArray objectAtIndex:indexPath.row] SKey];
    
    [cell.cellSwitch addTarget:self action:@selector(switchUD:) forControlEvents:UIControlEventValueChanged];
    
    // Display cell in the table cell
    BMOptionCell *setting = [tableCellArray objectAtIndex:indexPath.row];
    
    cell.cellLabel.text = setting.name;
 
    NSUserDefaults *uDefaults = [NSUserDefaults standardUserDefaults];
    NSLog(@"%@ is the cell.cellSwitch.UDKey String", cell.cellSwitch.UDKey);
    if ([[uDefaults stringForKey:cell.cellSwitch.UDKey] isEqualToString:@"ON"]) {
        NSLog(@"State is ON in this NSUserDefaults");
        cell.cellSwitch.on = YES;
    }
    else if ([[uDefaults stringForKey:cell.cellSwitch.UDKey] isEqualToString:@"OFF"]) {
        NSLog(@"State is OFF in this NSUserDefaults");
        cell.cellSwitch.on = NO;
    }
        else {
        NSLog(@"Something went wrong with setting the switch");
    }
    
    // Assign our own background image for the cell
    UIImage *background = [self cellBackgroundForRowAtIndexPath:indexPath];
    
    UIImageView *backgroundImage = [[UIImageView alloc] initWithFrame:cell.cellView.frame];
    [backgroundImage setImage:background];
    [backgroundImage setContentMode:UIViewContentModeScaleAspectFill];
    
    [cell.cellView sendSubviewToBack:backgroundImage];
    
//    UIImageView *cellBackgroundView = [[UIImageView alloc] initWithImage:background];
//    cellBackgroundView.image = background;
//    cell.backgroundView = cellBackgroundView;
    
    cell.cellView.backgroundColor = [UIColor colorWithPatternImage:background];
//    
//    if (expandedCell == cell) {
//        cell.infoLabel.hidden = NO;
//    }
    
    return cell;
}
 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSInteger row = [indexPath row];
    selectedRowNumber = row;
    objCellClicked = [[self tableView] cellForRowAtIndexPath:indexPath];
    [tableView beginUpdates];
    [tableView endUpdates];
 //   [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
 
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    BMOptionCell *cell = (BMOptionCell *)[tableView cellForRowAtIndexPath:indexPath];
    [tableView beginUpdates];
    [tableView endUpdates];
    cell.infoLabel.hidden = YES;
}
 
-(void)switchUD:(id)sender {
    BMCustomSwitch *senderSwitch = (BMCustomSwitch *)sender;
    NSUserDefaults *uD = [NSUserDefaults standardUserDefaults];
        if (senderSwitch.on == 1) {
            [uD setObject:@"ON" forKey:senderSwitch.UDKey];
            NSLog(@"Switch %@ ON", senderSwitch.UDKey);
        }
        else if (senderSwitch.on == 0) {
            [uD setObject:@"OFF" forKey:senderSwitch.UDKey];
            NSLog(@"Switch %@ OFF", senderSwitch.UDKey);
        }
    [uD synchronize];
}
 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    BMOptionCell *cell = objCellClicked;
    if ([indexPath row] == selectedRowNumber) {
        if (!(selectedRowNumber == rowExpanded)) {
            self.rowExpanded = [indexPath row];
//            self.expandedCell = objCellClicked;
            cell.infoLabel.hidden = NO;
            return  180;
        }
        if (selectedRowNumber == rowExpanded) {
            cell.infoLabel.hidden = YES;
//            expandedCell = nil;
            self.rowExpanded = -1;
            return 69;
        }
    }
    return 69;
}
 
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//    
//    NSString *cellText = [[TableViewData news] valueForKey:[NSString stringWithFormat:@"%d",[indexPath row]]];
//    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:10.0];
//    CGSize labelSize = [cellText sizeWithFont:cellFont
//                            constrainedToSize:constraintSize
//                                lineBreakMode:UILineBreakModeWordWrap];
//    return lableSize ;
//}
 
@end

Comments