RatingView 2.0.2

dotnet add package RatingView --version 2.0.2
NuGet\Install-Package RatingView -Version 2.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RatingView" Version="2.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RatingView --version 2.0.2
#r "nuget: RatingView, 2.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RatingView as a Cake Addin
#addin nuget:?package=RatingView&version=2.0.2

// Install RatingView as a Cake Tool
#tool nuget:?package=RatingView&version=2.0.2

RatingView (PDRatingView)

RatingView lets you display an average rating and, optionally, collect a user's rating submission on items in your Xamarin.iOS application.

  • Custom rating images.
  • Custom rating scale.
  • Transparent background for composing.

Examples

You can use whatever images you want and whatever scale size you need. Many people use five stars.

Five star rating scale

Others have something else entirely. Perhaps you want a 10-tomato rating.

Ten tomato rating scale

Whatever you need, you give it a rectangle to fit into and it will resize things accordingly.

Six moustaches rating scale

Ratings displays are kept minimal. If you need to compose your ratings view into something else, it will overlay it just fine.

Star rating on a custom background

Usage

In any code-based UIView or UIViewController, you can add a PDRatingView to the displayed just like any other view.

using PatridgeDev;
...

PDRatingView ratingView;
public override void ViewDidLoad() {
    
    // Gather up the images to be used.
    RatingConfig ratingConfig = new RatingConfig(
        emptyImage: UIImage.FromBundle("empty"),
        filledImage: UIImage.FromBundle("filled"),
        chosenImage: UIImage.FromBundle("chosen")
    );
    
    // Create the view.
    decimal averageRating = 3.25m;
    ratingView = new PDRatingView(new CGRect(0f, 0f, View.Bounds.Width, 125f), ratingConfig, averageRating);
    
    // [Optional] Do something when the user selects a rating.
    ratingView.RatingChosen += (sender, e) => {
        (new UIAlertView("Rated!", e.Rating.ToString() + " stars", null, "Ok")).Show();
    };
    
    // [Required] Add the view to the 
    View.Add(ratingView);
}

Other Configurations Options

Between-item whitespace

Need some space between your rating items? Just set the ItemPadding in the RatingConfig object used to build the PDRatingView.

// Put a little space between the rating items.
ratingConfig.ItemPadding = 5f;

Read-only (no user rating input)

If you are showing a rating without any intention of collecting a rating from the user, you can keep the rating view from taking any user input with the default iOS setting. As a result, this will keep it from ever triggering a RatingChosen event.

// Only display the rating; don't allow user rating.
ratingView.UserInteractionEnabled = false;

Different rating scale size

Say you need users to rate things on a scale to ten. That can be changed in the RatingConfig object used to build the PDRatingView. The default is a 5-item scale of ratings.

// Allow rating on a scale of 1 to 10.
ratingConfig.ScaleSize = 10;

Rounding of ratings to whole or half stars

If you want average ratings to display in half- or whole-star increments, that isn't currently built in to the PDRatingView system directly, but you can very easily use .NET to round appropriately before setting the view's AverageRating to reproduce the same result.

decimal rating = 3.58m;
decimal halfRoundedRating = Math.Round(rating * 2m, MidpointRounding.AwayFromZero) / 2m;
decimal wholeRoundedRating = Math.Round(rating, MidpointRounding.AwayFromZero);
StarRating.AverageRating = wholeRoundedRating;
Product Compatible and additional computed target framework versions.
Xamarin.iOS xamarinios10 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.2 26,085 4/24/2018

v2.0.2: Corrected namespace (breaking, but nothing internal changed).
v2.0.1: Updated component and samples to support Xamarin.iOS Unified API (again, after breaking changes in the latest Unified API release).
v2.0.0: Updated component and samples to support Xamarin.iOS Unified API.