From b8e94316e41eba72d927d5ca7d931b26139ee8ff Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 15 六月 2020 09:12:53 +0800 Subject: [PATCH] 20200612 --- Shared.IOS/UI/Loading.cs | 273 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 196 insertions(+), 77 deletions(-) diff --git a/Shared.IOS/UI/Loading.cs b/Shared.IOS/UI/Loading.cs index a4f8f2e..379f32b 100644 --- a/Shared.IOS/UI/Loading.cs +++ b/Shared.IOS/UI/Loading.cs @@ -4,76 +4,94 @@ namespace Shared { - /// <summary> - /// Loading UI - /// </summary> - public class Loading : View - { + /// <summary> + /// Loading UI + /// </summary> + public class Loading : View + { public bool CurStatus = false; - internal IosLoading iosLoading - { - get - { - return uiView as IosLoading; - } - set - { - uiView = value; - } - } + internal IosLoading iosLoading + { + get + { + return uiView as IosLoading; + } + set + { + uiView = value; + } + } - /// <summary> - /// Loading UI - /// </summary> - public Loading() - { - var bounds = UIScreen.MainScreen.Bounds; - iosLoading = new IosLoading(bounds); - } + /// <summary> + /// Loading UI + /// </summary> + public Loading() + { + var bounds = UIScreen.MainScreen.Bounds; + iosLoading = new IosLoading(bounds); + } - /// <summary> - /// 寮�濮嬪綋鍓嶈鍥� - /// </summary> - public void Start() - { - iosLoading.uiLabel.Text = "Loading......"; - iosLoading.Start(); + /// <summary> + /// 寮�濮嬪綋鍓嶈鍥� + /// </summary> + public void Start() + { + Text = "Loading......"; + iosLoading.Start(); CurStatus = true; } - /// <summary> - /// 寮�濮嬪綋鍓嶈鍥� - /// </summary> - public void Start(string s) - { - iosLoading.uiLabel.Text = s; - iosLoading.Start(); + /// <summary> + /// 寮�濮嬪綋鍓嶈鍥� + /// </summary> + public void Start(string s) + { + Text = s; + iosLoading.Start(); } - /// <summary> - /// 闅愯棌褰撳墠瑙嗗浘 - /// </summary> - public void Hide() - { - iosLoading.uiLabel.Text = "Loading......"; + /// <summary> + /// 闅愯棌褰撳墠瑙嗗浘 + /// </summary> + public void Hide() + { + Text = "Loading......"; iosLoading.Hide(); CurStatus = false; } - public string Text - { - get - { - return iosLoading.uiLabel.Text; - } - set - { - iosLoading.uiLabel.Text = value; - } - } + public string Text + { + get + { + return iosLoading.uiLabel.Text; + } + set + { + iosLoading.uiLabel.Text = value; + iosLoading.RefreshWidth(); + + } + } + + uint mTextColor; + public uint TextColor + { + get + { + return mTextColor; + } + set + { + mTextColor = value; + iosLoading.uiLabel.TextColor = HDLUtils.GetUIColorWithUint(mTextColor); + } + } + + public virtual uint LodingBackgroundColor { @@ -86,16 +104,47 @@ (iosLoading as IosLoading).LodingBackgroundColor = value; } } + + /// <summary> + /// + /// </summary> + /// <param name="mViewStyle">1 涓虹伆鑹�</param> + public void SetUIActivityIndicatorViewStyle(int mViewStyle) + { + (iosLoading as IosLoading).SetUIActivityIndicatorViewStyle(mViewStyle); + + } + + /// <summary> + /// 鏂囧瓧澶у皬 + /// </summary> + /// <value>The size of the text.</value> + public float TextSize + { + get + { + return (float)iosLoading.uiLabel.Font.PointSize; + } + set + { + iosLoading.uiLabel.Font = UIFont.FromName(iosLoading.uiLabel.Font.Name, value); + } + } + + } - internal class IosLoading : UIView { - - UIActivityIndicatorView activitySpinner= new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); - public UILabel uiLabel=new UILabel(); - UIView backUIView = new UIView(new CGRect(0, 0, 160, 100)); + internal class IosLoading : UIView + { + + UIActivityIndicatorView activitySpinner = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); + public UILabel uiLabel = new UILabel(); + UIView backUIView = new UIView(new CGRect(0, 0, 160, 120)); public IosLoading(CGRect frame) { + BackgroundColor = UIKit.UIColor.FromRGBA(0x32, 0x32, 0x32, 50); + Frame = frame; Hidden = true; @@ -103,31 +152,34 @@ var f = backUIView.Frame; f.Width = frame.Width; - f.Height = frame.Height; + //f.Height = frame.Height; backUIView.Frame = f; var center = backUIView.Center; - center.X = Frame.Width / 2; - center.Y = Frame.Height / 2; + center.X = Frame.Width / 2; + center.Y = Frame.Height / 2; backUIView.Center = center; AddSubview(backUIView); // create the activity spinner, center it horizontall and put it 5 points above center x var center1 = activitySpinner.Center; center1.X = backUIView.Frame.Width / 2; - center1.Y = (backUIView.Frame.Height - 22) / 2; + center1.Y = (backUIView.Frame.Height - 62) / 2 + 20; activitySpinner.Center = center1; backUIView.AddSubview(activitySpinner); activitySpinner.BackgroundColor = UIColor.Clear; + activitySpinner.Color = UIColor.Gray; var frame2 = uiLabel.Frame; - frame2.Y = activitySpinner.Frame.Bottom+22; + frame2.Y = backUIView.Frame.Height - 42; frame2.Width = backUIView.Frame.Width; frame2.Height = 22; uiLabel.Frame = frame2; uiLabel.BackgroundColor = UIColor.Clear; - uiLabel.TextColor = UIColor.White; + uiLabel.TextColor = UIColor.Gray; uiLabel.TextAlignment = UITextAlignment.Center; + //uiLabel.F backUIView.AddSubview(uiLabel); + } public void Start() @@ -136,24 +188,25 @@ { return; } - BackgroundColor = UIKit.UIColor.FromRGBA(0x32, 0x32, 0x32, 0xF0); + Hidden = false; activitySpinner.StartAnimating(); Superview.BringSubviewToFront(this); } - /// <summary> - /// Fades out the control and then removes it from the super view - /// </summary> - public void Hide () - { - if(Superview==null){ + /// <summary> + /// Fades out the control and then removes it from the super view + /// </summary> + public void Hide() + { + if (Superview == null) + { return; } - Hidden = true; - activitySpinner.StopAnimating (); - Superview.SendSubviewToBack(this); - } + Hidden = true; + activitySpinner.StopAnimating(); + Superview.SendSubviewToBack(this); + } uint loadingBackgroundColor; /// <summary> @@ -186,6 +239,72 @@ } } } + + public void SetUIActivityIndicatorViewStyle(int mViewStyle) + { + if (mViewStyle == 1) + { + activitySpinner.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray; + } + else + { + activitySpinner.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge; + } + + } + + public void RefreshWidth() + { + int maxTextWidth = GetTextWidth() + 40; + if (maxTextWidth > this.Frame.Width - 20) + { + maxTextWidth = (int)this.Frame.Width - 20; + } + else if (maxTextWidth < 120) + { + maxTextWidth = 120; + } + + var mFrame = backUIView.Frame; + if ((int)mFrame.Width == maxTextWidth) + { + return; + } + + mFrame.Width = maxTextWidth; + //f.Height = frame.Height; + backUIView.Frame = mFrame; + var center = backUIView.Center; + center.X = Frame.Width / 2; + center.Y = Frame.Height / 2; + + backUIView.Center = center; + + var center1 = activitySpinner.Center; + center1.X = backUIView.Frame.Width / 2; + activitySpinner.Center = center1; + + var frame2 = uiLabel.Frame; + frame2.Width = backUIView.Frame.Width; + uiLabel.Frame = frame2; + } + + /// <summary> + /// 鑾峰彇瀛椾綋闀垮害 + /// </summary> + int GetTextWidth() + { + try + { + CGSize fontSize = uiLabel.Text.StringSize(uiLabel.Font); + return (int)fontSize.Width; + } + catch + { + return 0; + } + } + } } -- Gitblit v1.8.0