Search code examples
objective-cuibuttonuitableviewcgrectmake

How to customize a button in tableviewcell?


I'm developing a iOS App and i am using Xcode 6.

I created 5 button in tableview cell programatically.i want to customize only a single button at a time.That means when i click a button it must enlarge and other buttons will keep the default size.

Now the problem is when i click a button,it will enlarge and if i click another button,it too enlarge.But i want to keep the remaining buttons in the default size that i have entered in CGRect Function.

Here is my code:

#import "ViewController.h"

@interface ViewController ()

{



    UITableViewCell *cell;

    UIButton *b2,*b1;



}

//@property(strong,nonatomic)UIButton *b3,*b4,*b5;

//@property(strong,nonatomic)UIButton *b1,*b2;



@end



@implementation ViewController
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
UIButton  *b1=[UIButton buttonWithType:UIButtonTypeCustom];

  b1.frame=CGRectMake(13.0, 40.0, 40.0, 40.0);

 [b1 setTag:1];

   [b1 addTarget:self action:@selector(modify:) forControlEvents:UIControlEventTouchUpInside];

[b1 setBackgroundColor:[UIColor blueColor]];

  [b1 setTitle:@"Blue" forState:UIControlStateNormal];

UIBButton *b2=[UIButton buttonWithType:UIButtonTypeCustom];
  b2.frame=CGRectMake(73.0, 40.0, 40.0, 40.0);
 [b2 setTag:2];
 [b2 addTarget:self action:@selector(modify1:) forControlEvents:UIControlEventTouchUpInside];
 [b2 setBackgroundColor:[UIColor redColor]];
[b2 setTitle:@"red" forState:UIControlStateNormal];
  UIButton  *b3=[UIButton buttonWithType:UIButtonTypeCustom];
  b3.frame=CGRectMake(133.0, 40.0, 40.0, 40.0);
  [b3 setTag:3];
 [b3 addTarget:self action:@selector(modify2:) forControlEvents:UIControlEventTouchUpInside];
  [b3 setBackgroundColor:[UIColor greenColor]];
  [b3 setTitle:@"Green" forState:UIControlStateNormal];
 UIButton *b4=[UIButton buttonWithType:UIButtonTypeCustom];
 b4.frame=CGRectMake(193.0, 40.0,40.0, 40.0);
 [b4 setTag:4];
 [b4 addTarget:self action:@selector(modify3:) forControlEvents:UIControlEventTouchUpInside];
 [b4 setBackgroundColor:[UIColor blackColor]];
  [b4 setTitle:@"Black" forState:UIControlStateNormal];
 UIButton *b5=[UIButton buttonWithType:UIButtonTypeCustom];
 b5.frame=CGRectMake(253.0, 40.0, 40.0, 40.0);
 [b5 setTag:5];
 [b5 addTarget:self action:@selector(modify4:) forControlEvents:UIControlEventTouchUpInside];
 [b5 setBackgroundColor:[UIColor orangeColor]];
[b5 setTitle:@"Orange" forState:UIControlStateNormal];

     [cell addSubview:b1];

     [cell addSubview:b2];

     [cell addSubview:b3];

     [cell addSubview:b4];

     [cell addSubview:b5];

 return cell;

 }

-(void)modify:(UIButton *)btn

{
 if (btn.tag==1) {
    btn.frame=CGRectMake(13.0, 40.0, 60.0, 60.0);
 }
 if (btn.tag!=1)
      {
   btn.frame=CGRectMake(73.0, 40.0, 40.0, 40.0);
 btn.frame=CGRectMake(133.0, 40.0, 40.0, 40.0);
        btn.frame=CGRectMake(193.0, 40.0, 40.0, 40.0);
       btn.frame=CGRectMake(253.0, 40.0, 40.0, 40.0);
    }
}
-(void)modify1:(UIButton *)btn1
{

 if (btn1.tag==2) {

    btn1.frame=CGRectMake(73.0, 40.0, 60.0, 60.0);
 if (btn1.tag==1) {
btn1.frame=CGRectMake(13.0, 40.0, 40.0, 40.0);
  }
}
-(void)modify2:(UIButton *)btn2
{
 if (btn2.tag==3) {
 btn2.frame=CGRectMake(133.0, 40.0, 60.0, 60.0);

    }
}
-(void)modify3:(UIButton *)btn3
{
if (btn3.tag==4) {
  btn3.frame=CGRectMake(193.0, 40.0, 60.0, 60.0);
  if (btn3.tag==3) {
      btn3.frame=CGRectMake(133.0, 40.0, 40.0, 40.0);
    }

    if (btn3.tag==2) {
     btn3.frame=CGRectMake(73.0, 40.0, 40.0, 40.0);

     }

     if (btn3.tag==1) {
       btn3.frame=CGRectMake(13.0, 40.0, 40.0, 40.0);
   }

     if (btn3.tag==5) {
    btn3.frame=CGRectMake(253.0, 40.0, 40.0, 40.0);

     }

 }

}

-(void)modify4:(UIButton *)btn4

{
 if (btn4.tag==5) {
    btn4.frame=CGRectMake(253.0, 40.0, 60.0, 60.0);
   if (btn4.tag==4) {
      btn4.frame=CGRectMake(193.0, 40.0, 40.0, 40.0);

        }

    if (btn4.tag==3) {

            btn4.frame=CGRectMake(133.0, 40.0, 40.0, 40.0);

        }

       if (btn4.tag==2) {
       btn4.frame=CGRectMake(73.0, 40.0, 40.0, 40.0);

        }

       if (btn4.tag==1) {
       btn4.frame=CGRectMake(13.0, 40.0, 40.0, 40.0);
     }

}

}

}

Solution

  •     [btn1 addTarget:self action:@selector(increaseAction:) forControlEvents:UIControlEventTouchUpInside];
        [btn2 addTarget:self action:@selector(increaseAction:) forControlEvents:UIControlEventTouchUpInside];
        [btn3 addTarget:self action:@selector(increaseAction:) forControlEvents:UIControlEventTouchUpInside];
        [btn4 addTarget:self action:@selector(increaseAction:) forControlEvents:UIControlEventTouchUpInside];
        [btn5 addTarget:self action:@selector(increaseAction:) forControlEvents:UIControlEventTouchUpInside];
    
    
        btn1.tag=1;
        btn2.tag=2;
        btn3.tag=3;
        btn4.tag=4;
        btn5.tag=5;
    
    -(IBAction)increaseAction:(id)sender
    {
    
        UIButton *button = (UIButton *) sender;
        //Here perform the desired operation
    
    }