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

时间:2014-11-24 11:37:57

标签: c# ios xamarin.ios uibutton xamarin

亲爱的程序员。 目前我的字符串已加载,并且使用数据库中的这些标题创建了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();


            }
        }

    }
}

问候 戴夫

2 个答案:

答案 0 :(得分:0)

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

this.View.AddSubview(button);

而不是:

this.Add(button);

答案 1 :(得分:0)

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

编辑
我我不确定这会有什么不同,但尝试以不同的方式创建按钮ei
var button = new UIButton(new RectangleF());我还有一件事我想到的可能是透明度,确保父视图和按钮做没有alpha设置为0

编辑2
还有一件事!尝试通过在InvokeOnMainThread(() => { this.View.AddSubview(button); });中调用按钮来添加按钮来进行包裹调用 方法!