Je ne suis pas vraiment familier avec objC et je cherche une solution pour construire un curseur qui glisse avec des «étapes». en déplaçant le curseur, la valeur augmente comme valeur + = 10 ou peut-être valeur + = 100. comment je fais ça?curseur iphone avec étapes constum
1
A
Répondre
1
I a modifié le code ci-dessus pour un curseur Cocos2D personnalisé http://yannickloriot.com/library/ios/cccontrolextension/Classes/CCControlSlider.html
Il a des propriétés :
@property (nonatomic, readwrite) float value;
@property (nonatomic, readwrite) minimumValue;
@property (nonatomic, readwrite) maximumValue;
@property (nonatomic, readwrite) int steps;
le recalcul:
- (void)recalcuateValue
{
float stepValues[self.steps];
stepValues[0] = self.minimumValue;
stepValues[self.steps - 1] = self.maximumValue;
for(int i = 1; i < self.steps; i++){
stepValues[i] = i * (self.maximumValue - self.minimumValue)/(self.steps - 1);
if (self.value < stepValues[i] && self.value > stepValues[i-1]){
self.value = (self.value > (stepValues[i] - stepValues[i-1])/2 + stepValues[i-1])?stepValues[i]:stepValues[i-1];
}
}
}
Et le ccTouchesEnded: J'ajouté si, pour le cas étapes est réglé sur 0, le curseur pourrait fonctionner dans habituelle (self.steps = 0!) Mode
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
if ([self isSelected]){
self.value = [self valueForLocation:_thumbSprite.position];
if(self.steps != 0) {
[self recalcuateValue];
[_thumbSprite setPosition:[self locationFromValue:self.value]];
}
}
self.thumbSprite.color = ccWHITE;
self.selected = NO;
}
Il appelle valueForLocation et locationFromValu e méthodes:
- (float)valueForLocation:(CGPoint)location
{
float percent = location.x/_backgroundSprite.contentSize.width;
return _minimumValue + percent * (_maximumValue - _minimumValue);
}
- (CGPoint)locationFromValue:(float)value{
float percent = self.value/self.maximumValue;
return ccp(percent * _backgroundSprite.contentSize.width, _backgroundSprite.position.y);
}
Ainsi, un exemple d'utilisation . Je avais besoin d'un curseur avec 3 étapes et des valeurs 0, 1 et 2 sur chaque étape:
self.Slider = [CCControlSlider sliderWithBackgroundFile:@"sliderTrack.png"
progressFile:@"sliderProgress.png"
thumbFile:@"sliderThumb-hd.png"]; progressFile:@"sliderProgress.png" thumbFile:@"sliderThumb-hd.png"];
self.Slider.minimumValue = 0.0f;
self.Slider.maximumValue = 2.0f;
self.Slider.steps = 3;
self.Slider.value = [[GameSettings sharedSettings] defaultAILevel];
[self.Slider addTarget:self action:@selector(onSliderValueChanged:) forControlEvents:CCControlEventValueChanged];
L'espoir il peut être utile
1
Je crée mon curseur discret de cette façon:
#import <UIKit/UIKit.h>
@interface DiscreteSlider : UISlider {
int step;
}
@property (nonatomic) int step;
@end
que cette mise en œuvre:
#import "DiscreteSlider.h"
@implementation DiscreteSlider
@synthesize step;
- (void) recalcuateStep
{
float lValue = self.value;
int lLowerValue = (int) (lValue/self.step);
float lDifference = lValue - (lLowerValue * step);
float lHalfStep = ((float) step)/2;
if(lDifference < lHalfStep) {
} else {
self.value = (float) (lLowerValue + step);
[self sendActionsForControlEvents:UIControlEventValueChanged];
}
}
- (void) touchesMoved:(NSSet *) touches
withEvent:(UIEvent *) event
{
[super touchesMoved:touches withEvent:event];
NSLog(@"DS.touchesMoved(), event: %@", event);
[self recalcuateStep];
}
- (void) endTrackingWithTouch:(UITouch *) touch
withEvent:(UIEvent *) event
{
[super endTrackingWithTouch:touch withEvent:event];
NSLog(@"DS.endTrackingWithTouch(), event: %@", event);
[self recalcuateStep];
}
- (int) step {
return (step ? step : 1);
}
@end
Questions connexes
- 1. Curseur avec NSTimer iPhone
- 2. Curseur JQuery UI avec étapes non-linéaires/exponentielles/logarithmiques
- 3. iPhone curseur Sensibilité
- 4. curseur dans l'affichage iphone
- 5. Les étapes pour devenir un iPhone Developer
- 6. iphone Exemple de curseur
- 7. étapes variables dans asp.net ajax multiples curseur de contrôle
- 8. SWF avec plusieurs « étapes »
- 9. Curseur de plage de l'interface utilisateur jQuery avec les étapes supérieures/inférieures échelonnées
- 10. Comment créer un curseur photo sur iPhone Safari avec jQuery?
- 11. Détecter les étapes prises pendant la marche en utilisant IPhone
- 12. Generate étapes personnalisées avec Behati
- 13. Itérations avec des étapes inégales
- 14. curseur jquery pour Ipad et IPhone?
- 15. Curseur iPhone enregistrer les préférences utilisateur
- 16. Attendre le curseur dans une application iPhone
- 17. Curseur avec plusieurs éléments
- 18. iPhone: Enregistrement d'une application d'achat In-App avec étapes iTunes pour les tests
- 19. Vue en deux étapes avec ASP.NET MVC
- 20. JQuery + Json - premières étapes avec un exemple
- 21. Contrôleur Zend Framework avec action en étapes
- 22. processus en deux étapes avec jQuery
- 23. Javascript Formulaire multi-étapes avec validation
- 24. scala SBT avec PK11 ou étapes
- 25. async_read "en deux étapes" avec boost asio
- 26. CSS 100% largeur avec étapes par 20px
- 27. Étapes d'installation supplémentaires avec l'installation npm
- 28. Problème d'installation avec les étapes jQuery
- 29. Premières étapes avec DSL sur Java?
- 30. Étapes pour connecter SQLitedatabse avec QT.?