使用数据库中的文本动态加载 iOS 按钮.Xamarin.iOS c#.

本文关键字:iOS 加载 按钮 Xamarin 动态 文本 数据库 | 更新日期: 2023-09-27 18:31:46

亲爱的程序员们。目前我的字符串已加载,并且使用数据库中的这些标题创建了 5 个按钮。然而,这些按钮在iOS应用程序上是不可见的。我错过了什么。我正在使用Xamarin.iOS和c#

提前致谢

    using Foundation;
using UIKit;
using System.CodeDom.Compiler;
using System.Drawing;
using Ola.ServiceClients;
using System.Threading.Tasks;
using PortableRest;
using Ola.Shared.Models;
using System.Net.Http;
using System.Net.Http.Headers;
namespace Ola.iOS
{
    partial class NavigationViewController : UIViewController
    {
        //private MenuItem[] menuItems;
        private MenuItem[] drawerItems;
        public string token = "";
        public NavigationViewController(IntPtr handle)
            : base(handle)
        {
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            LoadMenu();
        }

        public async void LoadMenu()
        {
            RestResponse<MenuItem[]> response = await NavigationClient.Current.GetMenu(token);
            //HttpResponseHeaders responseHeaders = response.HttpResponseMessage.Headers;
            //HttpRequestMessage requestMessage = response.HttpResponseMessage.RequestMessage;
            if (response != null && response.Content != null && response.Content.Length > 0)
            {
                //menuItems = response.Content;
                for (int i = 0; i < response.Content.Length; i++)
                {
                    UIButton button = UIButton.FromType(UIButtonType.RoundedRect);
                    button.SetTitle(response.Content[i].Text, UIControlState.Normal);
                    this.Add(button);
                    System.Console.WriteLine("Button created");
                }
                System.Console.WriteLine();

            }
        }
    }
}

问候戴夫

使用数据库中的文本动态加载 iOS 按钮.Xamarin.iOS c#.

添加以下代码以显示按钮:

this.View.AddSubview(button);

而不是:

this.Add(button);

确保您正在设置button.Frame属性,将按钮添加到父视图,并且您应该尝试将背景颜色设置为默认为透明。

编辑
我不确定这是否会有任何区别,但尝试以不同的方式创建按钮,例如
var button = new UIButton(new RectangleF());
我正在考虑的另一件事可能是透明度,确保父视图和按钮没有将 alpha 设置为 0

编辑 2
还有一件事!尝试将呼叫包装为添加按钮以查看,方法是在InvokeOnMainThread(() => { this.View.AddSubview(button); });
中调用它方法!