16

任何人都可以帮助我,我想以相同的高度和宽度水平多次添加相同的图像。重要的是我正在动态创建图像视图,我想对所有图像使用相同的图像视图!这是在此处输入图像描述我想像这样水平制作的图像,在此处输入图像描述但像这样只需要一行。

4

3 回答 3

17

您可以使用以下方法实现此目的stretchableImageWithLeftCapWidth

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

按您的要求:

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

并使用您的图像: 需要重复的绿色小部分

输出是:

使用代码创建的输出横幅

UIScrollview您可以将此图像设置在UIView和 按钮之上。你不需要一个for循环。

更新:

上面的代码用于填充整个背景。如果您只想添加一行,则必须创建一个UIView并设置colorWithPatternImage如下:

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];
 

和输出:

上面的横幅,下面的白色背景

于 2013-08-23T09:31:37.720 回答
4

查看图像的高度。但是这个视图可以有任何宽度。

然后使用以下代码在此视图中设置您的平铺图像。

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

这将使您的图像水平平铺多次。

如果视图在屏幕上到处传播图像,那么您必须将以下代码添加到您的视图中

 self.view.clipToBounds = YES;
于 2013-08-23T09:19:32.007 回答
0
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);

编辑

您可以通过另一种方式实现这一目标。

CodenameLambda1 的答案比上面的要好。但是@CodenameLambda1 的答案仍然需要做一些更改..因为 SOP 的要求是在滚动视图中显示它。所以而不是 self.view 使用滚动视图。

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];
于 2013-08-23T09:39:15.697 回答