이 방법은 UILwabels와 UISwitch를 바로 옆에 표시하는 방법입니다. 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