2011-01-10 4 views
4

Ich habe seit einiger Zeit nach einer 5-Sterne-Bewertungskontrolle gesucht und habe keine feste Lösung gefunden. Diese Frage:Bewertungsrangliste iphone

Anyone know whether there is a 5-star rating component on iPhone?

ein paar Links zu Projekten bereitgestellt, die nicht mehr verfügbar sind, und ich habe nicht in der Lage gewesen, um sie aufzuspüren.

Edit: Ich bin anscheinend schlecht im Aufspüren von Projekten, aber ich denke, ein Teil meiner Frage steht noch. Hier ist der aktualisierte Link http://code.google.com/p/s7ratingview/downloads/detail?name=s7ratingview-basic-release.zip

Also diese Fragen ist 2-teilig - Gibt es eine solide vorgefertigte Lösung da draußen, und könnten Sie mich darauf verweisen?

Ist es besser/ziemlich einfach zu (ja, ich weiß, diese beiden Facetten sind im Konflikt) wachsen meine eigene Lösung? Könnten Sie mir ein paar Tipps/Ressourcen dazu geben? Ich verstehe die Grundidee, UIView-Unterklassen zu bilden und Berührungsereignisse zu verfolgen, um ein Bild oben auf einem anderen Bild so zu erweitern, dass es wie Sterne aussieht, aber ein wenig mehr Richtung wäre hilfreich. Ich habe auf dem iPhone für etwas weniger als eine Woche entwickelt und brauche immer noch ein bisschen Hand halten.

+0

Dies ist noch verfügbar: http://code.google.com/p/s7ratingview/downloads/detail?name=s7ratingview-basic-release.zip –

+0

Gah! Der Link zeigt, dass es sich um eine alte Projektseite handelt, und der Link, auf den es auf github zeigt, ist ein 404>.

+0

Sie meinen etwas wie ['NSLevelIndicator'] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSLevelIndicator_Class/Reference/Reference.html)? –

Antwort

7

Versuchen Sie Ray Wenderlich's benutzerdefinierte UIView mit einer 5-Sterne-Bewertung.


[EDIT]

können Sie auch versuchen, UISlider verwenden und eine minimale/maximale Spur Bilder liefern.

+0

Dies war ein gutes Tutorial, um diese Stars von Grund auf zu erschaffen, danke! –

+0

+1 für die Großartigkeit ... !! –

9

Sie können DYRateView versuchen. Ich wollte das in Ray's Tutorial so oft wie möglich wiederverwenden, aber es gab einige Features, die ich vermisste.

Sie können mein Blog für weitere Details zur Verwendung von DYRateView in Ihrem Projekt überprüfen: http://iappexperience.com/post/23227218867/dyrateview-a-simple-yet-powerful-rating-control-for.

picture http://f.cl.ly/items/2D2R152W1z3T0O033f0G/DYRateView---readonly.png

picture http://f.cl.ly/items/1d291U2w423y3t2L0B02/DYRateView---editable.png

1

Eine weitere Möglichkeit, DLStarRating versuchen, können Sie den Bereich unter den Sternen anpassen, Erfassen berührt.

enter image description here

0

Einfach Einfach Sende einen Stern diesen Kodex und Kopieren Folgen und in Ihr Projekt einfügen und einfach Run.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    startview = [[UIView alloc] initWithFrame:CGRectMake(45, 70, 230, 50)]; 
    startview.backgroundColor = [UIColor redColor]; 
    NSInteger getrating = 0; 
    int x = 5; 
    for (int k = 1; k <= 5; k++) 
    { 
     UIImageView * mystarimage = [[UIImageView alloc] initWithFrame:CGRectMake(x, 5, 40, 40)]; 

     if (getrating >= k) 
     { 
      mystarimage.image = [UIImage imageNamed:@"star.png"]; 
     } 
     else 
     { 
      mystarimage.image = [UIImage imageNamed:@"gray-star.png"]; 
     } 

     mystarimage.tag = k; 
     mystarimage.userInteractionEnabled = YES; 
     [startview addSubview:mystarimage]; 
     UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(updateStar:)]; 
     rateMember = mystarimage.tag; 
     NSLog(@"rateing %ld",(long)rateMember); 
     letterTapRecognizer.numberOfTapsRequired = 1; 
     [mystarimage addGestureRecognizer:letterTapRecognizer]; 
     x = x + 45; 
    } 
    [self.view addSubview:startview]; 
} 

-(void)updateStar :(UITapGestureRecognizer*)sender 
{ 
    UIView *view = sender.view; 
    NSLog(@"hello ji %ld", (long)view.tag); 
    NSInteger getrating; 

    switch (view.tag) 
    { 
     case 1: 
      NSLog(@"press 1"); 
      rateMember = 1; 
      break; 
     case 2: 
      NSLog(@"press 2"); 
      rateMember = 2; 
      break; 
     case 3: 
      NSLog(@"press 3"); 
      rateMember = 3; 
      break; 
     case 4: 
      NSLog(@"press 4"); 
      rateMember = 4; 
      break; 
     case 5: 
      NSLog(@"press 4"); 
      rateMember = 5; 
      break; 
     default: 
      NSLog(@"press 5"); 
      rateMember = 5; 
      break; 
    } 

    getrating = rateMember; 
    NSLog(@"Get rating -------> %ld",(long)getrating); 
    int x = 5; 
    for (int k = 1; k <= 5 ; k++) 
    { 
     UIImageView * mystarimage = [[UIImageView alloc] initWithFrame:CGRectMake(x, 5, 40, 40)]; 

     if (getrating >= k) 
     { 
      mystarimage.image = [UIImage imageNamed:@"star.png"]; 
     } 
     else 
     { 
      mystarimage.image = [UIImage imageNamed:@"gray-star.png"]; 
     } 
     mystarimage.tag = k; 
     mystarimage.userInteractionEnabled = YES; 
     [startview addSubview:mystarimage]; 
     UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(updateStar:)]; 
     letterTapRecognizer.numberOfTapsRequired = 1; 
     [mystarimage addGestureRecognizer:letterTapRecognizer]; 
     x = x + 45; 
    } 
}