2017-04-10 57 views
2

我试图使用PCL更改xamarin.forms中进度条的高度。 的解决方案似乎是这样的:Xamarin forms increase ProgressBar height更改自定义progresssbar不工作的高度Xamarin.Forms iOS

在Android上这工作正常,但在iOS上它不工作。 有什么建议吗?

颜色和圆角半径变化正在工作!

我的代码:

using ZFBookingAid.iOS; 
using CoreGraphics; 
using Foundation; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using UIKit; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.iOS; 

[assembly: ExportRenderer(typeof(ProgressBar), typeof(CustomProgressBarRenderer))] 
namespace ZFBookingAid.iOS 
{ 
    public class CustomProgressBarRenderer : ProgressBarRenderer 
    { 
     protected override void OnElementChanged(
     ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e) 
     { 
      base.OnElementChanged(e); 

      Control.ProgressTintColor = Color.FromRgb(213, 176, 118).ToUIColor();// This changes the color of the progress 


      Control.TrackTintColor = Color.FromRgb(255, 255, 255).ToUIColor(); //color where is "no progress" 

     } 



     public override void LayoutSubviews() 
     { 
      base.LayoutSubviews(); 

      var X = 0.5f; 
      var Y = 30.0f; 

      CGAffineTransform transform = CGAffineTransform.MakeScale(X, Y); 
      Control.Transform = transform; 
      this.ClipsToBounds = true; 
      this.Layer.MasksToBounds = true; 
      this.Layer.CornerRadius = 5; // This is for rounded corners. 

     } 
    } 
} 

回答

0
public async override void LayoutSubviews() 
     { 
      await Task.Delay(100); 
      base.LayoutSubviews(); 
      CGAffineTransform transform = CGAffineTransform.MakeScale(1.2f, 2.5f); 
      transform.TransformSize(this.Frame.Size); 
      this.Transform = transform; 
      this.ClipsToBounds = true; 
      this.Layer.MasksToBounds = true; 


     } 

我这是怎么固定的进度条问题的高度。