【发布时间】:2013-12-24 10:15:26
【问题描述】:
我有自定义按钮类“EHCheckBox”。我的应用程序中有很多按钮,所以我尝试优化我的代码并在一行而不是 10 个中创建按钮。在我看来,在 viewDidLoad 我调用方法女巫调用方法来创建我的按钮。
-(void)viewDidLoad
{
.....
[self buttons];
.....
}
-(void)buttons
{
[self addNewBut:pcswitch Title:@" Switch" Column:3 Position:5 Dropable:NO Hide:NO]
}
-(void)addNewBut:(EHCheckBox*)checkBoxName Title:(NSString*)checkBoxTitle Column:(int)checkBoxColumn Position:(int)checkBoxPosition Dropable:(BOOL)checkBoxDropable Hide:(BOOL)hide
{
checkBoxName = [EHCheckBox buttonWithType:UIButtonTypeCustom];
[checkBoxName setTitle:NSLocalizedString(checkBoxTitle, @"") forState:UIControlStateNormal];
checkBoxName.hidden = hide;
if (checkBoxDropable) {
[checkBoxName setBackgroundImage:[UIImage imageNamed:@"CheckButton1.png"] forState:UIControlStateNormal];
[checkBoxName setBackgroundImage:[UIImage imageNamed:@"CheckButtonSelect1.png"] forState:UIControlStateSelected];
}else{
[checkBoxName setBackgroundImage:[UIImage imageNamed:@"CheckButton.png"] forState:UIControlStateNormal];
[checkBoxName setBackgroundImage:[UIImage imageNamed:@"CheckButtonSelect.png"] forState:UIControlStateSelected];
}
int firstColX = 45;
int firstColY = 125;
int width = 140;
int height = 36;
int widhtTwo = 18;
int x = firstColX + (checkBoxColumn - 1)*(width+widhtTwo);
int y = firstColY + (checkBoxPosition - 1)*(height);
checkBoxName.frame = CGRectMake(x, y, 140, 50);
[self.view addSubview:checkBoxName];
}
hide = YES,因为我有其他方法可以取消隐藏和隐藏按钮,但它们不起作用,因为在视图中我的按钮是 nil,我不明白为什么?也许我的方法应该返回这些按钮?谢谢。
【问题讨论】:
-
在
addNewBut:...方法的开头设置一个断点并从那里取出。 -
@dandan78 "...in view my button is nil..." 这些,意味着我使用了调试。
-
pcswitch呢?
标签: ios objective-c uibutton subview