-
Add the following NuGet package: https://www.nuget.org/packages/FormsPinView/
OR
add FormsPinView.Core, FormsPinView.iOS, and FormsPinView.Droid to your solution.
-
Initialize iOS and Android renderers:
// iOS: public override bool FinishedLaunching(UIApplication app, NSDictionary options) { ... global::Xamarin.Forms.Forms.Init(); PinItemViewRenderer.Init(); } // Android: protected override void OnCreate(Bundle bundle) { ... global::Xamarin.Forms.Forms.Init(this, bundle); PinItemViewRenderer.Init(); } -
Add
PinViewto your page:... xmlns:local="clr-namespace:FormsPinView.Core;assembly=FormsPinView.Core" ... <local:PinView HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" TargetPinLength="4" Validator="{Binding ValidatorFunc}" Success="Handle_Success" /> -
PinViewis MVVM-ready, so you can bind the following properties:
| Property | Type | Description | Default | Required |
|---|---|---|---|---|
Validator |
Func<IList<char>, bool> |
Function to check entered PIN | null |
Yes |
PinLength |
int |
The PIN length | 4 | No |
SuccessCommand |
ICommand |
Invoked when the correct PIN is entered | null |
No |
ErrorCommand |
ICommand |
Invoked when an incorrect PIN is entered | null |
No |
ClearAfterSuccess |
bool |
Indicates whether the entered PIN should be cleaned or not after it was confirmed as correct | true | No |
BorderColor |
Color |
View tint color. | Gray | No |
Color |
Color |
View basic color. | Black | No |
RippleColor |
Color |
View touch-effect color. | Gray | No |
- Use
AbsoluteLayoutinstead ofGrid, no XAML - Colorizing
- Rowspacing & Colspacing
- Buttons are Circle or Square
- Font size
- Button background
- Buttom border (size)
- Randomizing the numbers order
- CI builds
- UI tests
- Root container changed from
GridtoAbsoluteLayout - Allowed to configure view colors: see
BorderColor,Color, andRippleColor - Removed
EmptyCircleImageandFilledCircleImageproperties
- Released 2.0.0-pre1 as a stable version
- Removed
Titleproperty: now you have to implement it manually in your UI - Refactored the ViewModel API (splitted into bindable properties)
- Namespaces changed from
PCLtoCore. - Allowed to change the PIN length dynamically as well as PIN symbols
- Released 1.1.1-pre1 as a stable version
- Fixed
NSInternalInconsistencyExceptioncrash on iOS
- .NET Standard 2.0 is now supported
- PCL support is dropped
- Changed PCL profile to 259
- Added F# sample
- Intilial release
BSD 2-Clause.

