xamarin.ios屏幕不更新

gt0wga4j  于 2023-11-15  发布在  iOS
关注(0)|答案(1)|浏览(154)

我在Mac mini设备上使用Visual Studio(iOS 13)中的xamarin.ios创建了一个项目。我删除了故事板文件。
我有Main.cs、AppDelegate.cs、TableView.cs和TableSource.cs文件。
Main.cs:

using System;
using UIKit;

namespace LabelWrap
{
    public class Application
    {
        // This is the main entry point of the application.
        static void Main(string[] args)
        {
            // if you want to use a different Application Delegate class from "AppDelegate"
            // you can specify it here.
            //UIApplication.Main(args, null, typeof(AppDelegate));

            try
            {
                UIApplication.Main(args, null, "AppDelegate");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

字符串
AppDelegate.cs:

using System;
using Foundation;
using UIKit;

namespace LabelWrap
{
    [Register("AppDelegate")]
    public class AppDelegate : UIApplicationDelegate
    {
        UIWindow window;

        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            window = new UIWindow(UIScreen.MainScreen.Bounds);

            window.MakeKeyAndVisible();

            window.RootViewController = new TableView();
            
            return true;
        }
    }
}


TableSource.cs:

using System;
using Foundation;
using UIKit;

namespace LabelWrap
{
    public class TableSource : UITableViewSource
    {

        string[] TableItems;
        string CellIdentifier = "TableCell";

        public TableSource(string[] items)
        {
            TableItems = items;
        }

        public override nint RowsInSection(UITableView tableview, nint section)
        {
            return TableItems.Length;
        }

        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            UITableViewCell cell = tableView.DequeueReusableCell(CellIdentifier);
            string item = TableItems[indexPath.Row];

            //if there are no cells to reuse, create a new one
            if (cell == null)
            {
                cell = new UITableViewCell(UITableViewCellStyle.Default, CellIdentifier);
            }

            cell.TextLabel.Text = item;

            return cell;
        }
    }
}


TableView.cs:

using Foundation;
using UIKit;

namespace LabelWrap
{
    public partial class TableView : UITableViewController
    {
        UITableView table;

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

            View.BackgroundColor = UIColor.Green;
            table = new UITableView(View.Bounds); // defaults to Plain style
            string[] tableItems = new string[] { "Vegetables", "Fruits", "Flower Buds", "Legumes", "Bulbs", "Tubers" };
            table.Source = new TableSource(tableItems);
            table.BackgroundColor = UIColor.Yellow;
            Add(table);
        }
    }  
}


我的项目运行成功,但iOS模拟器(iOS 13),当我打开应用程序,显示一个黑色的屏幕.当我把一个断点在我的代码似乎一切都正确执行,但我没有看到屏幕上的任何差异.
是我在代码中遗漏了什么还是有错误?这样我在tableView中编写的结果就可以在屏幕上看到了

6vl6ewon

6vl6ewon1#

你的意思是你想要这个effect
1.打开VS for MAC并创建新项目(选择iOS Application
1.将您的程式码移至这个项目。
1.打开info.plist并删除Launch screen interface file base name的值,如this
1.然后,您可以选择是否删除脚本文件。

相关问题