【问题标题】:Xamarin labs checkbox ios not workingXamarin 实验室复选框 ios 不起作用
【发布时间】:2018-06-11 15:17:07
【问题描述】:

我在 Xamarin 论坛上问过同样的问题,但没有人回答我的问题。

我正在使用 X 实验室和我的代码,如下所示。

我的 Portable 项目的 ContentPage;

public class CheckBoxPage : ContentPage
{
    public CheckBoxPage()
    {
        CheckBox check = new CheckBox
        {
            TextColor = Color.Red,
            BackgroundColor = Color.Black,
            HorizontalOptions = LayoutOptions.FillAndExpand
        };
        CheckBox unCheck = new CheckBox
        {
            TextColor = Color.Yellow,
            BackgroundColor = Color.Black,
            HorizontalOptions = LayoutOptions.FillAndExpand
        };
        Content = new StackLayout
        {
            Children = {
                check, unCheck
            }
        };
    }
}

我的 android 和 iOS 外观不同。 iOS 外观不像复选框。不过安卓运行良好。为什么?

【问题讨论】:

    标签: xamarin xamarin.ios xamarin.forms


    【解决方案1】:

    非常感谢

    关于设计是不可编辑的。所以我有一个代码示例;

    class CheckBox : Image
    {
        public CheckBox(bool isChecked)
        {
            Resources = new ResourceDictionary();
    
            if(isChecked) 
                Resources.Add("ImageName", "checked.png");
            else
                Resources.Add("ImageName", "unchecked.png");
    
            var resourceName = Resources["ImageName"];
            Source = ImageSource.FromFile(resourceName.ToString());
    
            TapGestureRecognizer t = new TapGestureRecognizer();
            t.Tapped += OnScreenTapped;
            this.GestureRecognizers.Add(t);
        }
    
        public void OnScreenTapped(object sender, EventArgs args)
        {
            var resourceName = Resources["ImageName"];
            if (resourceName.ToString() == "unchecked.png")
            {
                Resources["ImageName"] = "checked.png";
                Source = ImageSource.FromFile("checked.png");
            }
            else
            {
                Resources["ImageName"] = "unchecked.png";
                Source = ImageSource.FromFile("unchecked.png");
            }
        }
    
        public bool isChecked()
        {
            var resourceName = Resources["ImageName"];
            if (resourceName.ToString() == "unchecked.png")
                return false;
            else
                return true;
        }
    }
    

    使用这个 customCheckBox

    CheckBox mychceck = new CheckBox(true);
    

    这对于定制设计来说更有用。

    【讨论】:

      【解决方案2】:

      我尝试将相同的示例与您的代码一起运行。

      原来我在 iOS 中也得到了类似的输出。

      这似乎是 XLabs 的一个问题,在检查后我发现them 提交了几个问题。

      一个更合适的是:

      或许,最好加入同一个线程。

      还有,你可以试试这个:

      希望对你有帮助!

      【讨论】:

        【解决方案3】:

        Xamarin IOS 和 Android 中的自定义复选框

        设计方面:

        <Image Source="unchecked_checkbox" >
             <Image.GestureRecognizers >
                 <TapGestureRecognizer Tapped="TapGestureRecognizerForCheckStaff" />
               </Image.GestureRecognizers>
        </Image>
        

        编码方面:

        private void TapGestureRecognizerForCheckStaff(object sender, EventArgs e) {

                Image img = (Image)sender;
                var selectedImage = img.Source as FileImageSource;
        
                if (selectedImage.File == "unchecked_checkbox")
                {
                    // perform action checkbox is checked;
                    img.Source = "checked_checkbox";
                }
        
                if (selectedImage.File == "checked_checkbox")
                {
                    // perform action when checkbox is unchecked
                    img.Source = "unchecked_checkbox";
                }
        
            }
        

        【讨论】:

          猜你喜欢
          • 2014-12-16
          • 2014-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-20
          • 2022-10-17
          • 2017-10-11
          相关资源
          最近更新 更多