में स्क्रॉल की दिशा की जांच करें मैं विधि scrollViewWillBeginDragging विधि को लागू करने का प्रयास कर रहा हूं। जब यह विधि कहलाती है तो मैं जांचता हूं कि उपयोगकर्ता ने स्क्रॉलव्यू के भीतर मौजूद बटनों में से एक चुना है: चयनित। यदि नहीं तो मैं उपयोगकर्ता को सूचित करने के लिए एक यूआईएलर्ट प्रदर्शित करता हूं।UIScrollView
मेरे यहाँ समस्या मैं केवल (दाएं से अगले दृश्य खींच) यदि सही से उपयोगकर्ता स्क्रॉल छोड़ दिया करने के लिए बटन चयनित (NextQuestion) विधि कॉल करना चाहते है। लेकिन अगर वे से बाएं से दाएं से स्क्रॉल कर रहे हैं तो मैं इसे सामान्य के रूप में स्क्रॉल करना चाहता हूं।
वर्तमान में चेकर विधि को कोई फर्क नहीं पड़ता कि उपयोगकर्ता किस दिशा में स्क्रॉल करता है। मैं से दाएं से बाएं से स्क्रॉल करते समय केवल एक विधि कैसे कॉल कर सकता हूं?
यहाँ कैसे मैं वर्तमान में इसे लागू किया गया है:
समाधान 1 के लिए- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self NextQuestion:scrollView];
}
-(IBAction)NextQuestion:(id)sender
{
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth)/pageWidth) + 1;
NSInteger npage = 0;
CGRect frame = scrollView.frame;
// Check to see if the question has been answered. Call method from another class.
if([QuestionControl CheckQuestionWasAnswered:page])
{
pageNumber++;
NSLog(@"Proceed");
if(([loadedQuestionnaire count] - 1) != page)
{
[self loadScrollViewWithPage:page - 1];
[self loadScrollViewWithPage:page];
[self loadScrollViewWithPage:page + 1];
}
// update the scroll view to the appropriate page
frame = scrollView.frame;
frame.origin.x = (frame.size.width * page) + frame.size.width;
frame.origin.y = 0;
[self.scrollView scrollRectToVisible:frame animated:YES];
}
// If question has not been answered show a UIAlert with instructions.
else
{
UIAlertView *alertNotAnswered = [[UIAlertView alloc] initWithTitle:@"Question Not Answered"
message:@"You must answer this question to continue the questionnaire."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alertNotAnswered show];
}
}
कोड:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"%f",scrollView.contentOffset.x);
if (scrollView.contentOffset.x < lastOffset) // has scrolled left..
{
lastOffset = scrollView.contentOffset.x;
[self NextQuestion:scrollView];
}
}
इस जवाब पर एक नज़र डालें: http://stackoverflow.com/a/4073028/742298 –