使用数据库中的文本动态加载 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();
}
}
}
}
问候戴夫
添加以下代码以显示按钮:
this.View.AddSubview(button);
而不是:
this.Add(button);
确保您正在设置button.Frame
属性,将按钮添加到父视图,并且您应该尝试将背景颜色设置为默认为透明。
编辑
我不确定这是否会有任何区别,但尝试以不同的方式创建按钮,例如var button = new UIButton(new RectangleF());
我正在考虑的另一件事可能是透明度,确保父视图和按钮没有将 alpha 设置为 0
编辑 2
还有一件事!尝试将呼叫包装为添加按钮以查看,方法是在InvokeOnMainThread(() =>
{
this.View.AddSubview(button);
});
中调用它方法!