Я бы хотел создать группу переключателей, которая будет выглядеть так, когда уже ничего не проверено, используя BEMCheckBoxes :
Мне кажется, что я не могу просто добавить число в кнопке.
Поэтому я решил создать вид с меткой и флажком по центру.
Здесь это код, который у меня есть:
// Add An horizontal stackView with check group
UIStackView uIStackView = new UIStackView();
uIStackView.TranslatesAutoresizingMaskIntoConstraints = false;
uIStackView.Axis = UILayoutConstraintAxis.Horizontal;
uIStackView.Alignment = UIStackViewAlignment.Center;
qolEvaluationCard.AddSubview(uIStackView);
uIStackView.Anchor(top: criteria.BottomAnchor, leading: criteria.LeadingAnchor, trailing: criteria.TrailingAnchor, size: new CGSize(0, 32));
BEMCheckBoxGroup bEMCheckBoxGroup = new BEMCheckBoxGroup();
bEMCheckBoxGroups.Add(bEMCheckBoxGroup);
for (int score= 1; score <= 10; score++)
{
var container = new UIView(new CGRect(0, 0, 32, 32));
var label = new UILabel();
label.Text = $@"{score}";
label.TintColor = UIColor.Black;
container.AddSubview(label);
var checkbox = new BEMCheckBox(new CGRect(0, 0, 32, 32));
container.AddSubview(checkbox);
checkbox.BoxType = BEMBoxType.Circle;
checkbox.OnAnimationType = BEMAnimationType.Stroke;
checkbox.Center = label.Center = new CGPoint(container.Frame.Size.Width / 2, container.Frame.Size.Height / 2);
// Transparent BackgroundColor
checkbox.BackgroundColor = null;
checkbox.TintColor = UIColor.Gray;
checkbox.OnTintColor = optimistic_orange;
bEMCheckBoxGroup.AddCheckBoxToGroup(checkbox);
uIStackView.AddArrangedSubview(container);
}
Результат не тот, который я ожидаю, но я не могу понять, что не так:
Почему мои флажки не прозрачны, чтобы позволить появиться метке? Также очевидно, что существует проблема распространения в UIStackView.
Любая помощь приветствуется.
Метод расширения привязки:
internal static void Anchor(this UIView uIView, NSLayoutYAxisAnchor top = null, NSLayoutXAxisAnchor leading = null, NSLayoutYAxisAnchor bottom = null, NSLayoutXAxisAnchor trailing = null, UIEdgeInsets padding = default, CGSize size = default)
{
uIView.TranslatesAutoresizingMaskIntoConstraints = false;
if (top != null)
{
uIView.TopAnchor.ConstraintEqualTo(top, padding.Top).Active = true;
}
if (leading != null)
{
uIView.LeadingAnchor.ConstraintEqualTo(leading, padding.Left).Active = true;
}
if (bottom != null)
{
uIView.BottomAnchor.ConstraintEqualTo(bottom, -padding.Bottom).Active = true;
}
if (trailing != null)
{
uIView.TrailingAnchor.ConstraintEqualTo(trailing, -padding.Right).Active = true;
}
if (size.Width != 0)
{
uIView.WidthAnchor.ConstraintEqualTo(size.Width).Active = true;
}
if (size.Height != 0)
{
uIView.HeightAnchor.ConstraintEqualTo(size.Height).Active = true;
}
}
РЕДАКТИРОВАТЬ 1 : Только что с помощью инструмента «Выявить» обнаружил, что размер «Мои метки» был неоднозначным.
var label = new UILabel ();
становится
var label = new UILabel (new CGRect (0, 0, 32, 32));
Это решает проблему «невидимой метки».