Poziomy UIScrollView i setki miniaturek w systemie iOS?
Muszę utworzyć poziomy UIScrollView, który pomieści setki miniaturek, tak jak slajd miniaturek.
Na przykład na jednym ekranie będzie wyświetlanych 10 miniaturek, z których każda sąsiaduje poziomo.
Mój problem polega na tym, że nie wiem, jak zrobić poziomy UIScrollView, aby trzymać wiele miniaturek, które wyświetlają się w tym samym czasie ?
Przykładowe zdjęcie jest jak poniżej. Zobacz dolną część ekran.
Dzięki.5 answers
Możesz dodać wszystkie miniatury programowo do widoku przewijania i użyć metody setContentSize UIScrollView. musisz przekazać 2 wartości w contentOffset. 1 dla szerokości i 1 dla wysokości. Kliknij link , aby dowiedzieć się więcej na ten temat. Jeśli potrzebujesz dalszej pomocy, zostaw komentarz.
Mam nadzieję, że to pomoże.Proszę rozważyć następujący przykład.
- (void)setupHorizontalScrollView
{
scrollView.delegate = self;
[self.scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = NO;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSUInteger nimages = 0;
NSInteger tot=0;
CGFloat cx = 0;
for (; ; nimages++) {
NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];
UIImage *image = [UIImage imageNamed:imageName];
if (tot==15) {
break;
}
if (4==nimages) {
nimages=0;
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
CGRect rect = imageView.frame;
rect.size.height = 40;
rect.size.width = 40;
rect.origin.x = cx;
rect.origin.y = 0;
imageView.frame = rect;
[scrollView addSubview:imageView];
[imageView release];
cx += imageView.frame.size.width+5;
tot++;
}
self.pageControl.numberOfPages = nimages;
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 11:15:00
Proponuję spojrzeć na nimbus
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-16 04:38:33
Zobacz projekt bjhomer hsimagesidebarview. Umożliwia ładowanie widoku przewijania w poziomie lub w pionie i ładowanie obrazów. Bardzo łatwy do wdrożenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 04:32:22
Po pierwsze, w storyboard
przeciągnij i upuść widok przewijania i stwórz wylot scrollview
o nazwie scrollView
. Dwie tablice jeden to mutable
i jeden to immutable
.
@property(nonatomic,strong)IBOutlet UIScrollView *scrollView;
@property(nonatomic,strong)NSMutableArray *images;
@property(nonatomic,strong)NSArray *imagesName;
Tablica immutable
przechowuje tylko obrazy, które chcemy pokazać w widoku przewijania.Upewnij się, że UIscrollview
delegat jest zdefiniowany.
W pliku {[9] } w funkcji didload
wykonaj następujący kod:
imagesName = [[NSArray alloc]initWithObjects:@"centipede.jpg",@"ladybug.jpg",@"potatoBug.jpg",@"wolfSpider.jpg", @"ladybug.jpg",@"potatoBug.jpg",@"centipede.jpg",@"wolfSpider.jpg",nil];
// mutable array used to show the images on scrollview dynamic becaus after one
// image when scroll other will come
images = [[NSMutableArray alloc]init];
scrollView.delegate = self;
scrollView.scrollEnabled = YES;
int scrollWidth = 120;
scrollView.contentSize = CGSizeMake(scrollWidth,80);
int xOffset = 0;
//the loop go till all images will load
for(int index=0; index < [imagesName count]; index++)
{
UIImageView *img = [[UIImageView alloc] init];
// make the imageview object because in scrollview we need image
img.frame = CGRectMake(5+xOffset, 0, 160, 110);
// the offset represent the values, used so that topleft for each image will
// change with(5+xOffset, 0)and the bottomright(160, 110)
NSLog(@"image: %@",[imagesName objectAtIndex:index]);
img.image = [UIImage imageNamed:[imagesName objectAtIndex:index]];
// The image will put on the img object
[images insertObject:img atIndex:index];
// Put the img object at the images array which is mutable array
scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110);
//scroll view size show after 125 width the scroll view enabled
[scrollView addSubview:[images objectAtIndex:index]];
// set images on scroll view
xOffset += 170;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-02 17:39:15
Możesz obliczyć rozmiar zawartości szerokość widoku przewijania jako szerokość = liczba obrazów * rozmiar każdego obrazu. Następnie Ustaw contentSize widoku przewijania na tę szerokość i żądaną wysokość (scrollView.contentSize = CGSizeMake(width, height))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-25 01:01:43