我试图UIPageControl从代码中更改对象的颜色属性.然而它崩溃了.从Interface Builder设置属性可以正常工作.
代码:
float x = isLight ? 0.8f : 0.2f;
UIColor markedColor = UIColor.FromRGB (x, x, x);
pageControll.CurrentPageIndicatorTintColor = markedColor;
pageControll.PageIndicatorTintColor = isLight ? UIColor.White : UIColor.Black;
Run Code Online (Sandbox Code Playgroud)
我得到的错误(在第三行):
Objective-C exception thrown. Name: NSRangeException Reason: *** -[__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds for empty array
有任何想法吗?
我设法从代码中设置行和列,但无法将此设置移动到xaml:
grid.RowDefinitions = new RowDefinitionCollection {
new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }
};
grid.ColumnDefinitions = new ColumnDefinitionCollection {
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }
};
Run Code Online (Sandbox Code Playgroud)
以下不起作用:
<Grid x:Name="grid" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
...
</Grid>
Run Code Online (Sandbox Code Playgroud)
从文档中我设法只获取c#实现
我有一个不同的场景.我需要创建一个公共类的实例,但它的所有构造函数都是内部的.该类没有默认构造函数.
我尝试了以下方法,但它没有用.
Activator.CreateInstance(typeof(ClassName));
Activator.CreateInstance(typeof(ClassName), nonpublic:true);
Activator.CreateInstance(typeof(ClassName),true);
Activator.CreateInstance(typeof(ClassName), new object[]{double,bool});
Run Code Online (Sandbox Code Playgroud)
我也试过这个,但最终得到了System.MissingMethodException.
var constructors = typeof(ClassName).GetConstructors();
foreach(var ctor in constructors)
ctor.Invoke(new object[] {double, bool});
Run Code Online (Sandbox Code Playgroud)
我无法在Xamrarin中使用BindingFlags.我被卡住,有人有解决方案吗?
Xamarin给出的错误:在xmlns clr-namespace中找不到类型Foo:AmsterdamTheMapV3
问题是我正在尝试定义Foo,但无论我做什么,它都会起作用.我认为问题出在xmls:local命名空间内.也许我在代码中犯了一个愚蠢的错误.
这是一个用于windows,android和apple的Xamarin.forms项目.
Xaml文件:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AmsterdamTheMapV3.CityGuide"
xmlns:local="clr-namespace:AmsterdamTheMapV3">
<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
<ScrollView Orientation="Vertical" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<StackLayout Orientation="Vertical" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Spacing="0">
<!-- Button1 -->
<Image
x:Name="CityGuideButton1"
Source="shopping_gray.png"
Aspect="Fill"
HorizontalOptions="FillAndExpand"
VerticalOptions ="FillAndExpand"
local:Foo.Tag="button1">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="Categorie_Onclick"
NumberOfTapsRequired="1"/>
</Image.GestureRecognizers>
</Image>
</StackLayout>
</ScrollView>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
Cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace AmsterdamTheMapV3
{
public partial class CityGuide : ContentPage
{
public CityGuide()
{
InitializeComponent();
}
public class Foo …Run Code Online (Sandbox Code Playgroud) 在xaml页面上的xamarin应用程序中,我使用xaml扩展加载本地化字符串(详细信息在此处描述).例如:
<Label Text={i18n:Translate Label_Text}/>
Run Code Online (Sandbox Code Playgroud)
现在,我希望用户能够在运行时更改应用程序的语言(使用选择器).如果发生这种情况,我想立即更改语言.
我可以以某种方式重新加载所有翻译的文本?
我可以删除所有页面并重新创建它们,但我试图避免这种情况.
我还可以将所有本地化文本绑定到页面模型中的字符串.但这对于真正的静态字符串来说是很多不必要的代码.
我正在学习如何将目标c绑定到monotouch上,而我遇到了一个阻塞属性的问题
@property (nonatomic, copy) void (^onLongPress)(UIView*, NSInteger);
Run Code Online (Sandbox Code Playgroud)
我现在有这个
delegate void onLongPress (UIView view, int index);
[Export ("onLongPress")]
void onLongPress() { set; }
Run Code Online (Sandbox Code Playgroud) MvvmCross从a UIBarButtonItem到a 创建绑定的正确方法是MvxCommand什么?
这对我不起作用 - >
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
this.AddBindings (new Dictionary<object, string> (){
{MyButton, "{'Clicked':{'Path':'MyCommand'}}"}
});
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中没有出现任何错误.我可以通过避免绑定来解决问题,但是你知道,如果所有绑定都是最好的.
我拥有Xamarin 的Indie许可证,因此我可以用我最熟练的编程语言C#开发iPhone/iPad应用程序.有了这个许可证,我无法使用Visual StudioXamarin 的插件.我还是喜欢Visual Studio到Xamarin Studio,所以我仍然在开发Visual Studio任何代码不需要MonoTouch引用,然后只需手动将DLL复制到Xamarin Studio.
我有一个程序集.Net framework 4.5,当我尝试调试我的应用程序时收到以下错误消息:
加载程序集:/Users/EdGriMac/Dropbox/Quiz/Newtonsoft.Json.dll [外部] 2013-09-23 20:30:38.021 Exam936 [2228:c07]无法加载'Newtonsoft.Json'进行注册:System.Reflection .ReflectionTypeLoadException:无法加载模块中的类.at(包装器托管到本机)System.Reflection.Assembly:GetTypes(System.Reflection.Assembly,bool)在/ Developer/MonoTouch/Source/mono/mcs /中的System.Reflection.Assembly.GetTypes()[0x00000]在/Developer/MonoTouch/Source/monotouch/src/ObjCRuntime/OldDynamicRegistrar.cs中的MonoTouch.Registrar.OldDynamicRegistrar.RegisterAssembly(System.Reflection.Assembly a)[0x00000]中的class/corlib/System.Reflection/Assembly.cs:351: 67 2013-09-23 20:30:38.023 Exam936 [2228:c07]这可能是由于模拟器保留了过时的装配,位置:
我的尝试:
首先想到的是NewtonSoft.JsonMonoTouch无法使用,但我不知道如何找到它.有没有办法确定是否可以使用第三方dll?
我的第二个想法是,NewtonSoft.Json另一个组件可以使用较旧或较新版本.然而,这不是一个大型项目,我使用的唯一其他程序集Json是RestSharp,但我认为不会使用NewtonSoft.Json.我查看了网页上的GitHub页面,但无法找到参考.
我google了一下,发现这篇文章说(有点下)MonoTouch.Registrar.OldDynamicRegistrar.RegisterAssembly表示(引用:) I can't build the app using the build flags --registrar:olddynamic. If I remove that, it now works, I can now link and …
我熟悉"可达性"类来检查是否存在互联网连接:https: //github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs
我现在想知道在网络状态发生变化时是否有任何方法可以获得通知?假设在没有互联网的情况下加载我的收藏品.图像不会被加载.如果iPad突然再次连接互联网,我想再次触发下载.
在reachability类中,我看到以下代码:
public static event EventHandler ReachabilityChanged;
static void OnChange (NetworkReachabilityFlags flags)
{
var h = ReachabilityChanged;
if (h != null)
h (null, EventArgs.Empty);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在"OnChange"方法中设置断点,则在关闭Wifi时不会调用它.
有任何想法吗?
问候,马特
我正在尝试使用CI和Xamarin Test Cloud来使用Visual Studio Online进行自动CI +执行测试场景.
在创建新的Xamarin Android构建定义时,它要求为Devices输入一个值,引用为
设备字符串由Xamarin Test Cloud生成.它可以作为Test Cloud测试运行的--devices命令行参数的值找到.
任何想法如何从这里得到这个字符串?我正在使用UiTest并将测试从Visual Studio上传到Xamarin测试云 - >测试项目 - >右键单击 - >在测试云中运行
帮助表示赞赏.
谢谢ST
xamarin.ios ×5
xamarin ×4
c# ×3
xaml ×2
android ×1
binding ×1
cocoa-touch ×1
grid ×1
ios ×1
mvvmcross ×1
reflection ×1