问题描述
我对 Xamarin.IOS 非常陌生。我使用 Rider 作为我的 IDE。我有一个基本的项目,带有一个tableview。每个单元格都包含一个按钮和一个标签。我可以注册按钮按下。我想要做的是在单击按钮时更改按钮的图标。我可以在 C# 中调用该方法,但我一直遇到问题,实际上如何正确加载图像。
在 Xcode 中,我通过将两个 .png 文件拖入 Assets.xcassets 创建了两个图像集。
我正在像这样加载我的图像:
UIImage checkedImage;
UIImage uncheckedImage;
public CampingListCell(IntPtr handle) : base(handle) {
checkedImage = UIImage.FromBundle ("checked");
uncheckedImage = UIImage.FromBundle("unchecked");
}
然后我用
交换图像 void Adjustimage() {
switch (listItem.CurrentCheckedState) {
case CheckedState.Checked:
ListItemCheckBox.ImageView.Image = checkedImage;
break;
case CheckedState.NotChecked:
ListItemCheckBox.ImageView.Image = uncheckedImage;
break;
default:
throw new ArgumentOutOfRangeException();
}
}
但是,当我在模拟器中运行程序时,只有一个空白按钮。我已经验证了在单击按钮时正确调用了 adjustimage 方法。
我也试过ListItemCheckBox.Setimage(uncheckedImage,UIControlState.normal);
此外,当我退出并重新打开 Xcode 时,图像集完全消失了!
我是否遗漏了一些明显的东西?我正在按照以下说明操作: https://docs.microsoft.com/en-us/xamarin/ios/app-fundamentals/images-icons/displaying-an-image?tabs=macos
如果重要的话,我会在控制台中看到一些我不明白的行:
编辑:
我刚刚注意到,在创建图像集时,骑手控制台会吐出这些错误:
解决方法
我在 JetBrains 问题跟踪器中为您创建了一个新问题: https://youtrack.jetbrains.com/issue/RIDER-57454
更新:将在 Rider 2021.1 中修复