Как повторить образ horizantly в динамическое создание в iOS
может ли кто-нибудь помочь мне, я хочу добавить одно и то же изображение несколько раз по горизонтали с одинаковой высотой и шириной. Важно то, что я создаю представление изображения динамически я хочу использовать один и тот же вид изображения для всех изображений! Это изображение Я хочу сделать горизонтально, как это но только одна строка нужна, как это.
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]];
и используя свой образ
его результат:-
![Введите описание изображения здесь][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];
и это :-
сделайте вид высоты изображения. Но этот вид может иметь любую ширину.
затем установите изображение плитки в этом представлении со следующим кодом.
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];