我有這種方法,它顯示右邊的UILabels和UISwitches。我想通過按下標籤來打開和關閉UISwitch。我已經標記了交換機,但我不知道下一步該怎麼做..任何幫助將不勝感激。謝謝!通過按下UILabel打開/關閉UISwitch
while (i < numberOfAnswers) {
UILabel *answerLabel = [[UILabel alloc] initWithFrame:CGRectMake(65, y+spaceBetweenAnswers, 240, 30)];
answerLabel.text = [NSString stringWithFormat:@"%@ (%@)", questionBank[randomQuestionNumber][1][i][0],questionBank[randomQuestionNumber][1][i][1]];
answerLabel.font = [UIFont systemFontOfSize:15];
answerLabel.textColor = [UIColor darkGrayColor];
answerLabel.numberOfLines=0;
[answerLabel sizeToFit];
[_answerView addSubview:answerLabel];
answerHeight = answerLabel.frame.size.height + spaceBetweenAnswers;
UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(10, y+spaceBetweenAnswers-5, 0, 30)];
mySwitch.transform = CGAffineTransformMakeScale(0.75, 0.75);
if ([questionBank[randomQuestionNumber][1][i][1] isEqual:@"0"]) {
[mySwitch addTarget:self action:@selector(wrongAnswer:) forControlEvents:UIControlEventValueChanged];
} else {
}
mySwitch.tag = i;
[_answerView addSubview:mySwitch];
}
首先,爲您的標籤添加手勢識別器:http://stackoverflow.com/questions/6324724/is-there-a-touch-method-for-uilabel。其次,從_anserview像這樣迭代視圖:http://stackoverflow.com/questions/4779048/looping-through-subviews-or-a-view。最後,比較開關標籤並打開/關閉。讓我知道這是否適合你。 – Radu
爲什麼不使用'UIButton'而不是標籤?這就是他們所做的!您可以爲其添加一個'IBAction'方法,並將代碼更改爲內部的開關狀態。 – Mischa
我不知道,爲什麼你需要這個,但這裏有一個解決方法,只需將UIButton放在UILable下面,然後在該按鈕上添加操作即可。 – zaheer