स्लाइडर को क्लिक की गई स्थिति पर कैसे सेट करें और आईफ़ोन प्रोग्रामिंग में यूआईस्लाइडर पर क्लिक किए गए स्थान पर स्लाइडर मान प्राप्त करें। मुझे पता है कि हम स्लाइडर को उस स्थिति में खींच सकते हैं लेकिन मैं इसे नहीं करना चाहता हूं। क्या आप कृपया मुझे बता सकते हैं कि स्लाइडर को क्लिक की गई स्थिति पर कैसे सेट करें? क्या ऐसा करना संभव है?आईफोन: क्लिकिंग स्थान पर स्थिति के लिए प्रोग्रामिंग यूआईस्लाइडर
उत्तर
आप स्लाइडर में बस UITapGestureRecognizer जोड़ सकते हैं, फिर यूआईआईएलआईडर और टच को इससे बाहर निकालने के लिए बाहर निकालें ताकि यह पता लगाया जा सके कि यूआईस्लाइडर टैप के साथ कहां था। फिर अपने स्लाइडर के मान को इस गणना मूल्य पर सेट करें।
अद्यतन:
पहले, सेटअप अपने स्लाइडर और इसे करने के लिए इशारा पहचानकर्ता जोड़ें।
UISlider *slider = [[[UISlider alloc] init] autorelease];
…
<slider setup>
…
UITapGestureRecognizer *gr = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sliderTapped:)] autorelease];
[slider addGestureRecognizer:gr];
तो चयनकर्ता लागू
- (void)sliderTapped:(UIGestureRecognizer *)gestureRecognizer {
<left as a user excercise*>
}
* सुझाव: Read the docs locationInView वाग्विस्तार हो और यह पता लगाने की क्या स्लाइडर होना चाहिए
यहाँ भाग "के रूप में छोड़ दिया है करने के लिए कैसे पता लगाने के लिए एक उपयोगकर्ता व्यायाम ":
- (void) tapped: (UITapGestureRecognizer*) g {
UISlider* s = (UISlider*)g.view;
if (s.highlighted)
return; // tap on thumb, let slider deal with it
CGPoint pt = [g locationInView: s];
CGFloat percentage = pt.x/s.bounds.size.width;
CGFloat delta = percentage * (s.maximumValue - s.minimumValue);
CGFloat value = s.minimumValue + delta;
[s setValue:value animated:YES];
}
जिस तरह से मैंने इसे उपclass करना है स्लाइडर और touchesBegan
में चेक करें। उपयोगकर्ता अंगूठे बटन क्षेत्र पर टैप करता है (जो हम पर नज़र रखने) तो नल पर ध्यान न दें, लेकिन किसी भी और कहाँ trackbar पर हम करते हैं: :
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self];
// if we didn't tap on the thumb button then we set the value based on tap location
if (!CGRectContainsPoint(lastKnownThumbRect, touchLocation)) {
self.value = self.minimumValue + (self.maximumValue - self.minimumValue) * (touchLocation.x/self.frame.size.width);
}
[super touchesBegan:touches withEvent:event];
}
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
CGRect thumbRect = [super thumbRectForBounds:bounds trackRect:rect value:value];
lastKnownThumbRect = thumbRect;
return thumbRect;
}
अब तक का सबसे अच्छा समाधान –
यदि आपने कस्टम -setThumbImage का उपयोग किया है, तो 'self.value = self.minimumValue + (self.maximumValue - self.minimumValue) * ((touchLocation.x - self.currentThumbImage.size.width/2)/(self.frame.size.width-self.currentThumbImage.size.width)); 'इन-टच बेगन। – SwiftArchitect
मैं subclassed UISlider कोड उपयोग कर रहा था ValueChanged घटनाओं को सुनने के लिए ios6> स्नैप-टू-ग्रिड प्रकार के फ़ंक्शन को कार्यान्वित करने के लिए।
आईओएस 7 में अपग्रेड करते समय यह टूट गया था क्योंकि यह अब UIControlEventsValueChanged को निकाल दिया गया था। एक ही समस्या यह तय हो गई है होने अगर() के रूप में नीचे में एक पंक्ति जोड़कर किसी के लिए:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self];
// if we didn't tap on the thumb button then we set the value based on tap location
if (!CGRectContainsPoint(lastKnownThumbRect, touchLocation)) {
self.value = self.minimumValue + (self.maximumValue - self.minimumValue) * (touchLocation.x/self.frame.size.width);
[self sendActionsForControlEvents:UIControlEventValueChanged];
}
[super touchesBegan:touches withEvent:event];
}
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
CGRect thumbRect = [super thumbRectForBounds:bounds trackRect:rect value:value];
lastKnownThumbRect = thumbRect;
return thumbRect;
}
आशा है कि यह मदद करता है किसी को :)
मैं इस कोड का इस्तेमाल किया है। इससे प्राप्त करें: http://imagineric.ericd.net/2012/11/15/uislider-touch-to-set-value/
UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sliderTapped:)];
[slider addGestureRecognizer:gr];
- (void)sliderTapped:(UIGestureRecognizer *)g {
UISlider* s = (UISlider*)g.view;
if (s.highlighted)
return; // tap on thumb, let slider deal with it
CGPoint pt = [g locationInView: s];
CGFloat percentage = pt.x/s.bounds.size.width;
CGFloat delta = percentage * (s.maximumValue - s.minimumValue);
CGFloat value = s.minimumValue + delta;
[s setValue:value animated:YES];
}
आशा है कि यह आपकी मदद कर सके।
ऐसा लगता है कि यूआईस्लाइडर को उप-वर्गीकरण करना और शुरुआत के लिए हमेशा सत्य लौटना, वांछित प्रभाव उत्पन्न करना।
आईओएस 10 और स्विफ्ट 3
class CustomSlider: UISlider {
override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
return true
}
}
- 1. आईफोन: UINavigationController के शीर्ष पर अजीब स्थान
- 2. आईओएस - यूआईस्लाइडर
- 3. आईफोन प्रोग्रामिंग: UITextView
- 4. यूआईस्लाइडर 5
- 5. यूआईस्लाइडर घटनाएं
- 6. स्थिति वाले तत्वों पर लंबवत स्थान: पूर्ण
- 7. डबल क्लिकिंग हाइलाइटिंग
- 8. आईफोन एआरकेट में स्थान एक स्थान पर ओवरलैपिंग
- 9. आईओएस फेसबुक स्थिति स्थान
- 10. आईफोन में ब्लूटूथ प्रोग्रामिंग
- 11. यूआईस्लाइडर के मूल्य को इंटीजर
- 12. आईफोन प्रोग्रामिंग: बार
- 13. दृश्यता स्थिति के साथ देखें स्क्रीन पर स्थान लेना
- 14. आईफोन पर UITextView में कर्सर की स्थिति प्राप्त करना?
- 15. एक्सकोड आईफोन प्रोग्रामिंग: यूआरएल
- 16. यूआईएलएबल ओवर यूआईस्लाइडर थंब
- 17. आईफोन स्थान बटन
- 18. यूआईस्लाइडर को आसानी से
- 19. आईफोन - मूल ऐप भू-स्थान VS वेब ऐप भू-स्थान
- 20. प्रोग्रामिंग के लिए आरपी प्रोग्रामिंग
- 21. आईफोन: कोर स्थान पॉपअप समस्या
- 22. आईपॉड-एस्क्यू यूआईस्लाइडर कैसे बनाएं
- 23. सेटिंग वर्तमान स्थान एनोटेशन के लिए CanShowCallOut = NO, आईफोन
- 24. स्थान प्रबंधक अद्यतन आवृत्ति, आईफोन
- 25. डेटाटेबल: शीर्ष दाएं स्थान पर स्थिति खोज बॉक्स
- 26. * संशोधित * UIbutton स्थिति (आईफोन एसडीके)
- 27. क्या कोई प्रोग्रामिंग वातावरण है जो आईफोन पर चलता है?
- 28. आईफोन फिक्स्ड-स्थिति UITableView पृष्ठभूमि
- 29. डबल क्लिकिंग जेएआर फ़ाइल कमांड प्रॉम्प्ट
- 30. विंडोज सिस्टम पर आईओएस प्रोग्रामिंग
आप कैसे स्लाइडर में UITapGestureRecognizer पेश करने का एक मोटा चित्र दे सकते हैं? – suse