Как быстро воспроизводить изображение в динамическом создании в ios

Может ли кто-нибудь помочь мне, я хочу добавить одно и то же изображение несколько раз по горизонтали с одинаковой высотой и шириной. Важно, что я динамически создаю образ изображения. Я хочу использовать одинаковый вид изображения для всех изображений! Это изображение enter image description here Я хочу сделать это горизонтально, как это enter image description here, но нужна только одна строка.

Ответы

Ответ 1

это с помощью метода Bellow, используя 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]];

И используя ваше изображение enter image description here

Он выводится следующим образом: -

enter image description here

! [введите описание изображения здесь] [4]

вы можете установить это изображение так, как показано выше, любой из UISCrollview, UIView, в качестве параметра вам не нужно forloop для этого.

UPDATE: -

Этот вышеописанный код для всего фона, если вы хотите добавить только для одной строки строки, тогда вам нужно создать один UIview как пар, который вам нужен, и добавить его colorWithPatternImage и добавить как Bellow

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

И его вывод: -

enter image description here

Ответ 2

Сделайте вид на высоту изображения. Но это представление может иметь любую ширину.

Затем установите изображение плитки в этом представлении с помощью следующего кода.

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

Это приведет к тому, что изображение будет разбито несколько раз по горизонтали.

Если представление распространяет изображение повсюду на экране, вам нужно добавить следующий код в свой вид

 self.view.clipToBounds = YES;

Ответ 3

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 заключается в отображении его в scrollview. Поэтому вместо self.view используйте 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];