質問

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.

役に立ちましたか?

解決

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

他のヒント

Make a view of the height of image. But this view can have any width.

Then set your tile image in this view with following code.

UIImage *tiledImage = [UIImage imageNamed:@"myTiledImage.png"];
self.view.backgroundColor = [UIColor colorWithPatternImage:tiledImage];

This will get you the image tiled multiple times horizontally.

If the view spreads the image everywhere on screen then you'll have to add the following code to your view

 self.view.clipToBounds = YES;
UIScrollView *myScrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

CGFloat scrollWidth = 0.f;
for (int i=0;i<10;i++)//i=10,put as many image number u want to display
 {

   imageView = [[UIImageView alloc] initWithFrame:
                            CGRectMake(scrollWidth, 0, 80, 60.f)];
    imageView.image=[UIImage imageNamed:@"urimagename"];
    imageView.tag=i;
    [myScrollView addSubview:imageView];

    scrollWidth += 100;
}
myScrollView.contentSize = CGSizeMake(scrollWidth, 100);

EDIT:

You can achieve this in one more way.

CodenameLambda1's answer is better than the above one.But still some changes needs to be done in the @CodenameLambda1's answer..as the SOP's requirement is to display it in scrollview.So instead of self.view use scrollview.

UIScrollView *vie=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 60)];
UIImage *tiledImage = [UIImage imageNamed:@"login"];
vie.backgroundColor = [UIColor colorWithPatternImage:tiledImage];
vie.contentSize=CGSizeMake(1400,60);
vie.clipsToBounds = YES;

[self.view addSubview:vie];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top