Search code examples
iphoneiosobjective-cuiimageviewdynamic-image-generation

How to repeat image horizantly in dynamic creation in ios


Could any one help me i want to add same image multiple times horizontally with same height and width. Important thing is i am creating image view dynamically i want to use same image view for all images! This is image enter image description here i want to make horizontally like this enter image description here but only one row needed like this.


Solution

  • You could achieve this by using stretchableImageWithLeftCapWidth:

    UIImage *backgroundImage = [[UIImage imageNamed:@"SheetBackground.png"] stretchableImageWithLeftCapWidth:0.5 topCapHeight:0];
    

    As per your request:

    UIImage *backgroundImage = [[UIImage imageNamed:@"q4Ses.png"] stretchableImageWithLeftCapWidth:0.5 topCapHeight:0];
        
      [_scro setBackgroundColor:[UIColor colorWithPatternImage:backgroundImage]];
    

    And using your image: Small green part that needs to be repeated

    The output is:

    The output banner that has been created with the code

    You can set this image on top of either UIScrollview, UIView and buttons. You do not need a for loop for that.

    UPDATE:

    The above code is for filling the entire background. If you wish to add only for one row then you have to create one UIView and set its colorWithPatternImage like below:

    UIImage *backgroundImage = [[UIImage imageNamed:@"q4Ses.png"] 
        stretchableImageWithLeftCapWidth:1 topCapHeight:0];
    UIView *v=[[UIView alloc]
        initWithFrame:CGRectMake(0, 0, _scro.frame.size.width, 45)];
    [v setBackgroundColor:[UIColor 
        colorWithPatternImage:backgroundImage]];
    [_scro addSubview:v];
     
    

    And the output:

    The banner on top with white background below