Here is a sample code that creates a radiobutton group inside a scrollview.
Please make sure you have a scrollview in your UI and its linked.
// This function adds the radio buttons inside the scrollview.
Here I am using some of my variables to generate the count of radio buttons.
Please make sure to change it before using it in your code.
NSString *const CHECKED_IMAGE = @"radiochecked.png"; NSString *const UNCHECKED_IMAGE = @"radiounchecked.png"; int y=0; for(int optionCount = 0; optionCount < [pracObj.answers count]; optionCount++){ UIButton *answerCheckBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [answerCheckBtn addTarget:self action:@selector(answerSelected:) forControlEvents:UIControlEventTouchDown]; [answerCheckBtn setTitle:@"" forState:UIControlStateNormal]; //set background image for button answerCheckBtn.backgroundColor = [UIColor clearColor]; answerCheckBtn.frame = CGRectMake(1.0, y+2, 20,20); UIImage *buttonImageNormal = [UIImage imageNamed:UNCHECKED_IMAGE]; UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [answerCheckBtn setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal]; answerCheckBtn.tag = optionCount + ANSWERTAG_STARTING; UILabel *answerLabel = [UILabel new]; answerLabel.tag = optionCount+100; answerLabel.text = [[pracObj.answers objectAtIndex:optionCount] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; answerLabel.lineBreakMode = NSLineBreakByWordWrapping; answerLabel.numberOfLines = 1; answerLabel.frame = CGRectMake(30, y+2, 300.0, 20.0); [answerLabel sizeToFit]; y+=answerLabel.frame.size.height; [answerLabel setFont:[UIFont systemFontOfSize:10]]; [answersScrollView addSubview:answerCheckBtn]; [answersScrollView addSubview:answerLabel]; }
And click of each radio button you can cal this function to reset the image.
-(IBAction)answerSelected:(id)sender { UIButton *curBtn = (UIButton*) sender; NSLog(@"DYN MEthod Clckd %d", curBtn.tag); UIImage *buttonImageNormal = [UIImage imageNamed:CHECKED_IMAGE]; UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [curBtn setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal]; [self clearButtons:curBtn.tag]; } -(void) clearButtons:(int) curTag { int totalAnsCount = [curPracticeQuestionObj.answers count]; for (int y = ANSWERTAG_STARTING; y < (ANSWERTAG_STARTING + totalAnsCount); y++) { if (y != curTag) { UIButton *otherButton = (UIButton *)[answersScrollView viewWithTag:y]; UIImage *buttonImageNormal = [UIImage imageNamed:UNCHECKED_IMAGE]; UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [otherButton setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal]; } } }