से दाएं या बाएं स्लाइड करके UIImageView से छवि को कैसे बदलें, इसमें है जिसमें UIImageView
है और UIImage
की एक सरणी है। छवि को अगली सरणी स्थिति में बदलने के लिए मैं स्लाइड सुविधा को दाएं या बाएं कैसे विकसित कर सकता हूं?UIViewController
5
A
उत्तर
8
सामान्य दृष्टिकोण एक यूआईएसक्रॉल दृश्य छवियों में से एक का आकार है, पेजिंग सक्षम है।
subviews के रूप में छवियों को जोड़ें और इस तरह की सामग्री आकार सेट ...
NSArray *images;
CGSize imageSize;
self.scrollView.frame = CGRectMake(10,10,imageSize.width,imageSize.height);
self.scrollView.contentSize = CGSizeMake(imageSize.width * images.count, imageSize.height);
self.scrollView.pagingEnabled = YES;
CGFloat xPos = 0.0;
for (UIImage *image in images) {
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(xPos, 0.0, imageSize.width, imageSize.width);
[self.scrollView addSubview:imageView];
xPos += imageSize.width;
// assuming ARC, otherwise release imageView
}
तुम भी उछाल को बंद कर सकता, स्क्रॉल संकेतक, आदि प्रभाव आप चाहते हैं के विवरण के आधार पर।
1
आप बस कड़ी चोट दिशा प्राप्त कर सकते हैं छोड़ दिया है या UISwipeGestureRecognizer
इस
swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(detectSwipe:)];
[swipeGesture setNumberOfTouchesRequired:1];
[swipeGesture setDirection:UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionUp];
[appView addGestureRecognizer:swipeGesture];
विधि detectSwipe
UIImage सरणी के साथ खेलने के लिए अपने आगे संभाल और पिछड़े के लिए घोषित की तरह अधिकार के साथ किया जाता है। आप Apple's SimpleGestureRecognizers Demo
यह भी देख सकते हैं कि यह आपकी मदद करता है!
2
UIScrollView और UIPageControl का उपयोग करके, खींचें n UIScrollView और UIPageControl यकीन है कि वे ओवरलैप नहीं करता है ड्रॉप, both.Set
- (void)viewDidLoad
{
[super viewDidLoad];
// 1
imageArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image2.jpg"],
[UIImage imageNamed:@"man-actor-Ashton-Kutcher-Wallpaper.jpg"],
[UIImage imageNamed:@"image1.jpg"],
[UIImage imageNamed:@"man-curl.jpg"],
[UIImage imageNamed:@"man-in-suit.jpg"],
nil];
for (int i = 0; i < imageArray.count; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIImageView *subview = [[UIImageView alloc] initWithFrame:frame];
subview.image = [imageArray objectAtIndex:i];
subview.contentMode = UIViewContentModeScaleAspectFit;
[self.scrollView addSubview:subview];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * imageArray.count, self.scrollView.frame.size.height);
pageControl.numberOfPages = imageArray.count;
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
// Update the page when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
self.pageControl.currentPage = page;
}
की IBOutlet बनाने मैं इसे निश्चित नहीं की कोशिश की थी, अगर मैं अपने सुझाव सही ढंग से अनुसरण कर रही हूं, यह काम नहीं करता है, स्क्रॉलव्यू खाली रहता है। हो सकता है कि मुझे समझने की कमी की वजह से कुछ याद आ रहा है कि वस्तुओं, घटनाएं कैसे काम करती हैं ... धन्यवाद – Sweet
यह उत्तर मुझे मेरी समस्या का समाधान करने वाले लिंक पर ले गया: http://www.iosdevnotes.com/2011/03/uiscrollview- पेजिंग /। धन्यवाद दान, मैंने इसे वोट दिया और उत्तर के रूप में चिह्नित किया – Sweet