Как изменить цвет фона UIButton, когда он внутри UIStackView - PullRequest
0 голосов
/ 25 декабря 2018

Я пытаюсь вставить предварительно загруженный UIStackView в другой StackView.В предварительно загруженном UIStackView у меня есть вложенные представления, которые я добавил программно.Проблема в том, что когда я добавляю кнопки и устанавливаю их цвет, они получают белый фон, а угловой радиус вообще отсутствует

Я пытался использовать "background = new UIColor (51,181,229,255)" и "background = UIColor.FromCGColor (51,181,229,255) "

с такими же результатами ..

        //TextFields
        UITextField oldPasswordTextField = new UITextField
        {
            Placeholder = "Old Password",
            BackgroundColor = UIColor.White,
            ClipsToBounds = true
        };

        UITextField newPasswordTextField = new UITextField
        {
            Placeholder = "New Password",
            BackgroundColor = UIColor.White,
            ClipsToBounds = true
        };

        UITextField repPasswordTextField = new UITextField
        {
            Placeholder = "Repeat New Password",
            BackgroundColor = UIColor.White,
            ClipsToBounds = true
        };

        //Buttons
        UIButton cancelButton = new UIButton();           
        cancelButton.SetTitle("Cancel", UIControlState.Normal);
        cancelButton.SetTitleColor(UIColor.White, UIControlState.Normal);
        cancelButton.BackgroundColor = UIColor.FromCGColor(new CoreGraphics.CGColor(51, 181, 229, 255));
        cancelButton.ClipsToBounds = true;

        UIButton submitButton = new UIButton();
        submitButton.SetTitle("Submit", UIControlState.Normal);
        submitButton.SetTitleColor(UIColor.White, UIControlState.Normal);
        //submitButton.BackgroundColor = new UIColor(51, 181, 229, 255);
        submitButton.ClipsToBounds = true;


        passwordChangeStackView.AddArrangedSubview(oldPasswordTextField);
        passwordChangeStackView.AddArrangedSubview(newPasswordTextField);
        passwordChangeStackView.AddArrangedSubview(repPasswordTextField);
        passwordChangeStackView.AddArrangedSubview(submitButton);
        passwordChangeStackView.AddArrangedSubview(cancelButton);
        passwordChangeStackView.AddArrangedSubview(activityIndicator);

MainStackView.InsertArrangedSubview (passwordChangeStackView, 2);// 2 -> после связанной кнопки

Мне нужно, чтобы кнопки были с моим выбранным цветом, с белым текстом, и все подпредставления имели закругленные углы ... но я не могу заставить их работать.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Вы можете использовать background = new UIColor (51,181,229,255) , однако ваш параметр в этой функции неправильный .

Указано значение цвета RGBwith: rgb (красный, зеленый, синий).

Каждый параметр (красный, зеленый и синий) определяет интенсивность цвета в виде целого числа от 0 до 255.

Например,rgb (0, 0, 255) отображается как blue , потому что для параметра blue установлено самое высокое значение (255), а для остальных - 0.

Давайтевзгляните на определение:

  //UIColor constructor from red, green, blue and alpha components.
        //
        // Parameters:
        //   red:
        //     Red component, 0.0 to 1.0f.
        //
        //   green:
        //     Green component 0.0 to 1.0f.
        //
        //   blue:
        //     Blue component value 0.0 to 1.0f.
        //
        //   alpha:
        //     Alpha (transparency) value from 0.0 to 1.0f.
        //
        // Remarks:
        //     This can be used from a background thread.
        [BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
        [Export("initWithRed:green:blue:alpha:")]
        public UIColor(nfloat red, nfloat green, nfloat blue, nfloat alpha);

Итак, в вашем случае вы можете использовать:

submitButton.BackgroundColor = new UIColor(51/255.0f, 181/255.0f, 229/255.0f, 255/255.0f);

0 голосов
/ 25 декабря 2018

Пришлось использовать UIColor.FromRGBA ..... теперь он работает

...