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