Как повторить образ horizantly в динамическое создание в iOS

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

3 ответов


это с помощью метода Bellow с помощью stretchableImageWithLeftCapWidth вот так: -

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

как par ваш пример потребности: -

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 для этого.

обновление:-

это выше код для всего фона если вы хотите добавить только для одной строки строки, то вам нужно создать один UIview как par вам нужно Hight и добавить set it's 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


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

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

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

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

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

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

редактировать:

Вы можете добиться этого другим способом.

ответ CodenameLambda1 лучше, чем приведенный выше.Но все же некоторые изменения должны быть сделаны в ответе @CodenameLambda1..поскольку требование SOP заключается в отображении его в scrollview.Так что вместо себя.просмотр использовать 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];