www translator titulos serps retweet para look iconos google emoticones emojis ios objective-c rating fractions

ios - translator - retweet emoji



¿Hay algún control disponible para la calificación de estrellas? (11)

Acabo de escribir esta subclase UIView simple que dibuja estrellas de 0 a 5, incluidas las medias estrellas. Puede establecer el color con la propiedad tintColor y establecer la calificación en el editor de interfaz. El ancho de la vista se debe establecer en 5 * altura.

class StarsView: UIView { @IBInspectable var rating: Double = 5.0 { didSet { setNeedsLayout() } } func starPath(size: CGFloat, full: Bool) -> UIBezierPath { let fullPoints = [CGPoint(x: 0.5, y: 0.03), CGPoint(x: 0.61, y: 0.38), CGPoint(x: 0.99, y: 0.38), CGPoint(x: 0.68, y: 0.61), CGPoint(x: 0.8, y: 0.97), CGPoint(x: 0.5, y: 0.75), CGPoint(x: 0.2, y: 0.97), CGPoint(x: 0.32, y: 0.61), CGPoint(x: 0.01, y: 0.38), CGPoint(x: 0.39, y: 0.38)].map({ CGPoint(x: $0.x * size, y: $0.y * size) }) let halfPoints = [CGPoint(x: 0.5, y: 0.03), CGPoint(x: 0.5, y: 0.75), CGPoint(x: 0.2, y: 0.97), CGPoint(x: 0.32, y: 0.61), CGPoint(x: 0.01, y: 0.38), CGPoint(x: 0.39, y: 0.38)].map({ CGPoint(x: $0.x * size, y: $0.y * size) }) let points = full ? fullPoints : halfPoints let starPath = UIBezierPath() starPath.move(to: points.last!) for point in points { starPath.addLine(to: point) } return starPath } func starLayer(full: Bool) -> CAShapeLayer { let shapeLayer = CAShapeLayer() shapeLayer.path = starPath(size: bounds.size.height, full: full).cgPath shapeLayer.fillColor = tintColor.cgColor return shapeLayer } override func layoutSubviews() { super.layoutSubviews() let sublayers = layer.sublayers for sublayer in sublayers ?? [] { sublayer.removeFromSuperlayer() } for i in 1...5 { if rating >= Double(i) - 0.5 { let star = starLayer(full: rating >= Double(i)) star.transform = CATransform3DMakeTranslation(bounds.size.height * CGFloat(i - 1), 0, 0) layer.addSublayer(star) } } } }

¿Hay algún control disponible para la calificación de estrellas en ios? ¿Así que puedo usar eso en UITableviewCell?

Sé que hay algunos controles abiertos de código abierto como DYRating, etc. Pero no puedo agregarlo en la celda de Tableview.



Nota: Esta es una "SOLO MOSTRAR".

Tomé un enfoque diferente aquí, creé una etiqueta con una cadena atribuida usando una fuente con estrellas, puedes ver mi categoría aquí. Usé la fuente "SS Pika",

#import "NSMutableAttributedString+Stars.h" @implementation NSMutableAttributedString (Stars) + (NSAttributedString *)starWithRating:(CGFloat)rating outOfTotal:(NSInteger)totalNumberOfStars withFontSize:(CGFloat) fontSize{ UIFont *currentFont = [UIFont fontWithName:@"SS Pika" size:fontSize]; NSDictionary *activeStarFormat = @{ NSFontAttributeName : currentFont, NSForegroundColorAttributeName : [UIColor redColor] }; NSDictionary *inactiveStarFormat = @{ NSFontAttributeName : currentFont, NSForegroundColorAttributeName : [UIColor lightGrayColor] }; NSMutableAttributedString *starString = [NSMutableAttributedString new]; for (int i=0; i < totalNumberOfStars; ++i) { //Full star if (rating >= i+1) { [starString appendAttributedString:[[NSAttributedString alloc] initWithString:@"/u22C6 " attributes:activeStarFormat]]; } //Half star else if (rating > i) { [starString appendAttributedString:[[NSAttributedString alloc] initWithString:@"/uE1A1 " attributes:activeStarFormat]]; } // Grey star else { [starString appendAttributedString:[[NSAttributedString alloc] initWithString:@"/u22C6 " attributes:inactiveStarFormat]]; } } return starString; } @end

USO:

self.ratingLabel.attributedText = [NSMutableAttributedString starWithRating:rating outOfTotal:5 withFontSize:9.0f];

Aquí está la versión SWIFT

extension NSMutableAttributedString{ func starWithRating(rating:Float, outOfTotal totalNumberOfStars:NSInteger, withFontSize size:CGFloat) ->NSAttributedString{ let currentFont = UIFont(name: "<USE UR FONT HERE>", size: size)! let activeStarFormat = [ NSFontAttributeName:currentFont, NSForegroundColorAttributeName: UIColor.redColor()]; let inactiveStarFormat = [ NSFontAttributeName:currentFont, NSForegroundColorAttributeName: UIColor.lightGrayColor()]; let starString = NSMutableAttributedString() for(var i = 0; i < totalNumberOfStars; ++i){ if(rating >= Float(i+1)){ // This is for selected star. Change the unicode value according to the font that you use starString.appendAttributedString(NSAttributedString(string: "/u{22C6} ", attributes: activeStarFormat)) } else if (rating > Float(i)){ // This is for selected star. Change the unicode value according to the font that you use starString.appendAttributedString(NSAttributedString(string: "/u{E1A1} ", attributes: activeStarFormat)) } else{ // This is for de-selected star. Change the unicode value according to the font that you use starString.appendAttributedString(NSAttributedString(string: "/u{22C6} ", attributes: inactiveStarFormat)) } } return starString } }

USO:

starLabel.attributedText = NSMutableAttributedString().starWithRating(3.5, outOfTotal: 5, withFontSize: 8.0) starLabelFull.attributedText = NSMutableAttributedString().starWithRating(5, outOfTotal: 5, withFontSize: 8.0) starLabelZero.attributedText = NSMutableAttributedString().starWithRating(0, outOfTotal: 5, withFontSize: 8.0)


Puedes consultar la calificación de ASStar.

Agregue el control directamente a su controlador de vista o puede agregarlo a su celda.

Y aquí está el enlace github .




Si todo lo que quieres es un número entero de estrellas, puedes usar un simple String Array y usarlo para establecer la propiedad de texto de un UILabel.

let ratingsDisplay = [ "★☆☆☆☆", "★★☆☆☆", "★★★☆☆", "★★★★☆", "★★★★★" ] let rating = 4 let label = UILabel() label.text = ratingsDisplay[rating - 1]

Asegúrese de configurar la fuente de la UILabel en una que muestre las estrellas en blanco y negro del mismo tamaño. Muchos pero no todos lo hacen.


Utilice HCSStarRatingView . Es fácil de implementar esto. simplemente escriba estas líneas de código. Cree IBOutlet HCSStarRatingView para en el archivo .h y cree una cadena para almacenar el valor de calificación.

@property (weak, nonatomic) IBOutlet HCSStarRatingView *starRatingView; @property (weak, nonatomic) NSString *ratingStr;

en el archivo .m escriba estas líneas

self.starRatingView.maximumValue = 5; self.starRatingView.minimumValue = 0; self.starRatingView.value = 0; self.starRatingView.tintColor = [UIColor yellowColor]; self.starRatingView.allowsHalfStars = YES; self.starRatingView.emptyStarImage = [[UIImage imageNamed:@"heart-empty"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; self.starRatingView.filledStarImage = [[UIImage imageNamed:@"heart-full"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [self.starRatingView addTarget:self action:@selector(didChangeValue:) forControlEvents:UIControlEventValueChanged]; - (IBAction)didChangeValue:(HCSStarRatingView *)sender { NSLog(@"Changed rating to %.1f", sender.value); ratingStr = [NSString stringWithFormat:@"%.1f",sender.value]; if([hostRatingStr isEqualToString:@"-0.0"]){ self.ratingLbl.text = @"0.0"; }else{ self.ratingLbl.text = hostRatingStr; } }


Utilice https://github.com/shantaramk/RatingView .

Es fácil de implementar esto. solo sigue los pasos a continuación:

Establecer IBOutlet Star View

@IBOutlet weak var rateView: StarRateView!

Preparar vista de tasa de estrellas

func setupStarRateView() { self.rateView.delegate = self self.rateView.maxCount = 5 self.rateView.fillImage = UIImage(named: "fill_star")! self.rateView.emptyImage = UIImage(named: "empty_star")! }

Adoptar delegado de vista de tarifas

extension RateServiceViewController: RatingViewDelegate { func updateRatingFormatValue(_ value: Int) { print("Rating : = ", value) } }


Swift3

https://github.com/marketplacer/Cosmos

  • instalar pod

    target ''TargetName'' do

    pod ''Cosmos''

  • Instalar el archivo pod con este comando pod install

  • Coloque una vista UIV simple en su guión gráfico y CosmosView nombre de la clase como CosmosView y el nombre del módulo Cosmos

AQUÍ PUEDES ACCEDER A LOS ATRIBUTOS


Recomiendo HCSStarRatingView . Es de aspecto nativo y también es compatible con IB_DESIGNABLE e IBInspectable .