我已经在这个问题上摆弄了好几天了,我似乎无法做到这一点.
我正在尝试构建一个看起来类似于以下模型的UITableView:

据我所知,这是在UI上展示这一点的最佳方式.然而,无论我尝试什么,我似乎无法获得单元格的高度(对于GetHeightForRow方法).
加载和添加视图不是问题,问题在于它们被加载后,用数据填充不同的UI元素,并获得它们的大小.
我尝试过使用SizeToFit,但它似乎唯一影响的元素是UILabels.即使当UILabel的框架变为300高度并且我在包含标签的UI上调用SizeToFit时,它(UIView)仍然保持在320x100.这意味着当它被渲染时,它看起来都是错的.
我试图计算高度的方式非常类似于/sf/answers/1312285131/上接受的答案的第4点.也就是说,在内存中创建一个单元格,并为每行填充数据,然后在该单元格上获取高度.
我的代码有一个非常奇怪的问题,这是一个很新的问题,考虑到半年前我没有它.长话短说,我在Xamarin制作了一个应用程序,大约半年前在所有3家商店(App Store,Google Play和Microsoft Store)上发布了它.
昨天用户报告了Android应用程序的问题,在我修复并重新编译之后,我现在遇到了Json.NET的新错误
例外是
Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Rowlog.Common.Dtos.CompressedTripData. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'tripCoordinates', line 1, position 19.
Run Code Online (Sandbox Code Playgroud)
在你问之前,是的Rowlog.Common.Dtos.CompressedTripData确实有一个无参数构造函数(嗯,它根本没有一个,我们都知道它是同一个东西).
就像我说的那样,这是我在Android设备上从服务器加载CompressedTripData对象的时候.在iOS和Windows Phone上加载完全相同的对象可以顺利运行.我猜这是最近Json.NET或Xamarin.Android的变化,这导致了这个问题(其他应用程序大约半年前仍在使用Json.NET库.不确定是否有过任何更新,因为)
有没有其他人遇到类似的问题,如果有的话,你是如何解决它的?
我已经尝试了很长一段时间来找到一个应该非常直接的问题的解决方案.我想要的是在应用程序未运行时可以在iPhone设置菜单中编辑的变量.基本上是包含在iOS GUI中的配置文件.
这应该是iOS中的内置功能,虽然我可以找到一些与之相关的方法,但我找不到实际的解决方案.
我最接近我想要的是它的工作方式与任何其他变量一样:在应用程序启动时清空,并在应用程序关闭时再次划伤.并且仍然无法在iPhone设置窗口中看到.
这是我的代码:
private void LoadSettingsFromIOS()
{
// This is where it works like any other variable. Aka. gets scratched on app closing.
_thisUser.SetValueForKey(new NSString("Blargh"), new NSString("SaveCredentials"));
string stringForKey = _thisUser.StringForKey("SaveCredentials");
// This is where I'm supposed to be able to load the data from settings and set the checkbox's 'On' state to the value. Currently it always returns False.
bool saveCredentials = _thisUser.BoolForKey("SaveCredentials");
chckBoxRememberMe.On = saveCredentials;
}
Run Code Online (Sandbox Code Playgroud)
和我的Settings.Bundle Root.pList文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST …Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序(最初用于Windows,但扩展到Mac和Linux asap),我将需要在两个平台上扩展shell,以实现最佳可用性.那么我将如何在C#中为Mac OS X以及Linux(基于GNOME)进行shell扩展?
在Windows上有一个名为SharpShell的库,可以为您处理所有这些,所以这很棒.但对于Mac或Linux没有这样的运气(据我所知).
我想要集成的Shell的主要方面是右键单击文件,并让它显示一个上下文菜单,其中包含我的应用程序的不同选项.(比如Windows上的7-Zip)
当我使用Shell这个术语时,我是从Windows派生出来的.因此,当我说我希望与Shell集成时,我的意思是在右键单击时创建上下文菜单,以及类似的功能.所有基于UI.
很长一段时间以来,我遇到了将变量从一个Activity传递到另一个Activity的麻烦,而且我通常不得不解决一些相当丑陋的Static-class-hacks才能使它工作.
通常我使用Activity的类型调用静态方法的行,以及Activity需要的变量.这些存储在静态变量中,并在所述活动的构造函数中检索.
就像我说的那样,非常难看.并且没有"myActivity.StartActivity(new Activity);"这样的东西.StartActivity的所有重载都采用Intent或typeof(MyOtherActivity).
所以我的问题是,我是否完全误解了活动的概念,或者我只是错过了一种将论据传递给他们的完全明显的方法?
@Edit:我想传递对象的实际引用而不是简单地传递对象副本的原因是因为我试图将一个View Model从一个覆盖的Activity传递到新的Activity.当然,对此视图模型所做的任何更改都应该反映在父活动上,只有当两个activy的viewmodel指向同一个实例时才能实现.
我正在使用Xamarin.Android编写应用程序,但C#和Java之间的代码几乎相同,所以这两种语言的答案都很好.