【发布时间】:2015-04-02 06:20:04
【问题描述】:
我正在开发一个 iOS 应用程序,我正在使用 Xcode 6。
我以编程方式在 tableview 单元格中创建了 5 个按钮。我想一次只自定义一个按钮。这意味着当我单击一个按钮时,它必须放大,而其他按钮将保持默认大小。
现在的问题是当我点击一个按钮时,它会放大,如果我点击另一个按钮,它也会放大。但我想将剩余的按钮保持在我在 CGRect 函数中输入的默认大小。
这是我的代码:
#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);
}
}
}
}
【问题讨论】:
标签: objective-c uitableview uibutton tableviewcell cgrectmake