UIButton с закругленными углами, размер которого соответствует названию - PullRequest
0 голосов
/ 11 июля 2020

Я бы хотел иметь UIButton с закругленными углами, размер которого будет ограничен его заголовком. Эта кнопка будет помещена в вид горизонтального стека с предшествующим текстом. Я хочу, чтобы размер кнопки был фиксированным, в то время как размер предыдущего текста ограничен только пространством, доступным рядом с кнопкой.

Вот код, который у меня есть на данный момент:

UIStackView textAndDoneButtonStackView = new UIStackView
{
    TranslatesAutoresizingMaskIntoConstraints = false,
    Axis = UILayoutConstraintAxis.Horizontal,
    Distribution = UIStackViewDistribution.Fill,
    Alignment = UIStackViewAlignment.Center,
    Spacing = 10
};

// Create the appropriate control for this habit                
UIView habitTitleView = CreateControlForHabit(habitTitle, kv.Value.workout, workoutName);
textAndDoneButtonStackView.AddArrangedSubview(habitTitleView);

// Add the done button
UIButton doneButton = CreateDoneButton(healthy_green);
habitIdDoneButtonId[kv.Value.id] = (int)doneButton.Tag;

textAndDoneButtonStackView.AddArrangedSubview(doneButton);

и

CreateControlForHabit(...)
{
    UILabel uIHabitTitle = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false };
    uIHabitTitle.Text = habitTitle;
    return uIHabitTitle;
}

, затем

private static UIButton CreateDoneButton(UIColor healthy_green)
{
    // Add the done button

    var doneButton = UIButton.FromType(UIButtonType.RoundedRect);
    doneButton.TranslatesAutoresizingMaskIntoConstraints = false;

    doneButton.SetTitle(Utilities.GetLocalizedString("habit_done_button_text"), UIControlState.Normal);
    doneButton.SetTitleColor(UIColor.White, UIControlState.Normal);
    doneButton.BackgroundColor = healthy_green; // Healthy Green
    doneButton.Layer.CornerRadius = 5f;
    doneButton.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
    doneButton.ContentEdgeInsets = new UIEdgeInsets(top: 0, left: 10f, bottom: 0, right: 10f);

    doneButton.Tag = doneButton.GenerateViewTag();

    // View is hidden by default
    doneButton.Hidden = true;

    return doneButton;
}

Моя проблема в том, что мне нужна кнопка с закругленными углами, и я не могу передать результат UIButton.FromType () пользовательскому классу, который переопределит IntrinsicContentSize.

Какие параметры доступны здесь, чтобы исправить размер этой закругленной кнопки?

...