How to add multiple buttons to scrollview

I want to add buttons dynamically together with the scroll list, suppose there are about 100 buttons in scrollview, it would be very convenient to add them to the nib file, so I want to know how to write code, dynamically add buttons to the top of the image on scrollview

+4
source share
2 answers

What you need to do is create a loop, create UIButtons . Settings buttons and add them as subzones on the UIScrollView . The code follows.

 NSUInteger i; int xCoord=0; int yCoord=0; int buttonWidth=100; int buttonHeight=50; int buffer = 10; for (i = 1; i <= 100; i++) { UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; aButton.frame = CGRectMake(xCoord, yCoord,buttonWidth,buttonHeight ); [aButton addTarget:self action:@selector(whatever:) forControlEvents:UIControlEventTouchUpInside]; [scrollView addSubview:aButton]; yCoord += buttonHeight + buffer; } [scrollView setContentSize:CGSizeMake(700, yCoord)]; 

Basically, I have variables for the X and Y coordinates here. When I move on to creating UIButtons , I create the appropriate CGRect structure to decide where to place the button in the UIScrollView . After adding this button to scrollView, change the X and Y values ​​to the place where you want to place the next button.

In the end, be sure to set ContentSize to scroll so that it ContentSize scrolling.

PS: all this code is typed with your free hand, it may have small syntax errors, but the logic is solid.

+7
source

You can use the code below to add a few buttons to the scrollview:

Step 1:

 Delegate "UIScrollViewDelegate" to your Viewcontroller.h for example: @interface Viewcontroller : UIViewController<UIScrollViewDelegate> 

Step 2:

 //create you UIScrollView UIScrollView *Scroll_View= [[UIScrollView alloc]initWithFrame:CGRectMake(0 ,0 ,self.view.frame.size.width ,self.view.frame.size.height-0)]; Scroll_View.delegate= self; self.automaticallyAdjustsScrollViewInsets= NO; Scroll_View.backgroundColor= [UIColor clearColor]; Scroll_View.scrollEnabled= YES; Scroll_View.userInteractionEnabled= YES; [Scroll_View setShowsHorizontalScrollIndicator:NO]; [Scroll_View setShowsVerticalScrollIndicator:YES]; [self.view addSubview:Scroll_View]; 

Step 3:

 NSArray *optionsAry= [NSArray arrayWithObjects:@"My Profile & My Orders" ,@"Track Order" ,@"Settings" ,@"Contact Us" ,@"About Us" ,@"Terms & Conditions" ,@"Currency Converter" ,@"System Info" ,@"e-Commerce News App (News Billa)" ,@"Social Media" ,nil]; int y= 20; for(int i=0; i<optionsAry.count; i++){ UIButton *BTN_For_More= [[UIButton alloc] initWithFrame:CGRectMake(20 ,y , Scroll_View.frame.size.width-40 ,35)]; BTN_For_More.tag= i; BTN_For_More.backgroundColor= [UIColor whiteColor]; [BTN_For_More addTarget:self action:@selector(BTN_For_More_Action:) forControlEvents:UIControlEventTouchUpInside]; BTN_For_More.titleLabel.text= [NSString stringWithFormat:@"%@",[optionsAry objectAtIndex:i]]; BTN_For_More.titleLabel.textColor= [UIColor colorWithRed:12/255.0 green:104/255.0 blue:172/255.0 alpha:1.0f]; BTN_For_More.titleLabel.textAlignment= NSTextAlignmentCenter; BTN_For_More.titleLabel.font= [UIFont fontWithName:@"SourceSansPro-Regular" size:15]; //3D effects Start BTN_For_More.layer.shadowColor= [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5f].CGColor; BTN_For_More.layer.shadowOffset= CGSizeMake(0 ,0);//2,2 BTN_For_More.layer.shadowRadius= 2.0; BTN_For_More.layer.shadowOpacity= 1.0; BTN_For_More.layer.masksToBounds= NO; //3D effects End [Scroll_View addSubview:BTN_For_More]; y= BTN_For_More.frame.size.height + y + 20; }//for loop END //10 Scroll_View.contentSize= CGSizeMake(Scroll_View.frame.size.width ,y); 

Step 4:

 -(void) BTN_For_More_Action:(NSString *)myString{ NSLog(@"you clicked on button %@", myString); } 
0
source

Source: https://habr.com/ru/post/1379884/


All Articles