小编Ste*_*oix的帖子

设置UIPageControl的CurrentPageIndicatorTintColor时出现NSRangeException

我试图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

有任何想法吗?

cocoa-touch xamarin.ios

4
推荐指数
1
解决办法
528
查看次数

如何在Xamarin.Forms Xaml中设置行/列定义?

我设法从代码中设置行和列,但无法将此设置移动到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#实现

grid xamarin xamarin.forms

4
推荐指数
1
解决办法
2万
查看次数

如何使用Reflection创建带有参数的内部构造函数的实例?

我有一个不同的场景.我需要创建一个公共类的实例,但它的所有构造函数都是内部的.该类没有默认构造函数.

我尝试了以下方法,但它没有用.

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.我被卡住,有人有解决方案吗?

c# reflection system.reflection

4
推荐指数
1
解决办法
803
查看次数

无法在Xaml上设置嵌套类的属性

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)

c# xaml android xamarin xamarin.forms

4
推荐指数
1
解决办法
900
查看次数

重新评估由标记扩展计算的xaml页面中的所有值

在xaml页面上的xamarin应用程序中,我使用xaml扩展加载本地化字符串(详细信息在此处描述).例如:

<Label Text={i18n:Translate Label_Text}/>
Run Code Online (Sandbox Code Playgroud)

现在,我希望用户能够在运行时更改应用程序的语言(使用选择器).如果发生这种情况,我想立即更改语言.

我可以以某种方式重新加载所有翻译的文本?

我可以删除所有页面并重新创建它们,但我试图避免这种情况.

我还可以将所有本地化文本绑定到页面模型中的字符串.但这对于真正的静态字符串来说是很多不必要的代码.

c# xaml xamarin.forms

4
推荐指数
2
解决办法
866
查看次数

如何绑定属性块monotouch

我正在学习如何将目标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)

binding xamarin.ios

3
推荐指数
1
解决办法
247
查看次数

绑定到MvvmCross中的UIBarButtonItem事件

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.ios ios mvvmcross

3
推荐指数
1
解决办法
2564
查看次数

无法加载Json.NET DLL Xamarin Studio

我拥有Xamarin 的Indie许可证,因此我可以用我最熟练的编程语言C#开发iPhone/iPad应用程序.有了这个许可证,我无法使用Visual StudioXamarin 的插件.我还是喜欢Visual StudioXamarin 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]这可能是由于模拟器保留了过时的装配,位置:

我的尝试:

  1. 首先想到的是NewtonSoft.JsonMonoTouch无法使用,但我不知道如何找到它.有没有办法确定是否可以使用第三方dll?

  2. 我的第二个想法是,NewtonSoft.Json另一个组件可以使用较旧或较新版本.然而,这不是一个大型项目,我使用的唯一其他程序集JsonRestSharp,但我认为不会使用NewtonSoft.Json.我查看了网页上的GitHub页面,但无法找到参考.

  3. 我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 …

xamarin.ios xamarin-studio

3
推荐指数
1
解决办法
2834
查看次数

Monotouch - 在网络状态发生变化时收到通知

我熟悉"可达性"类来检查是否存在互联网连接: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时不会调用它.

有任何想法吗?

问候,马特

xamarin.ios xamarin

3
推荐指数
1
解决办法
3251
查看次数

如何获得Xamarin测试云设备字符串

我正在尝试使用CI和Xamarin Test Cloud来使用Visual Studio Online进行自动CI +执行测试场景.

在创建新的Xamarin Android构建定义时,它要求为Devices输入一个值,引用为

设备字符串由Xamarin Test Cloud生成.它可以作为Test Cloud测试运行的--devices命令行参数的值找到.

任何想法如何从这里得到这个字符串?我正在使用UiTest并将测试从Visual Studio上传到Xamarin测试云 - >测试项目 - >右键单击 - >在测试云中运行

帮助表示赞赏.

谢谢ST

continuous-integration xamarin xamarin-test-cloud

3
推荐指数
1
解决办法
365
查看次数