Вот код для настраиваемого средства визуализации в iOS. .
Я хочу, чтобы текст находился под изображением, я попробовал XLabs ImageButton, но похоже, что они больше не работают с новыми XamarinForms ....
Xamarin.iOS ....
/ *.
Blockquote
public class ButtonCustomRendererIOS : ButtonRenderer
{
public ButtonCustomRendererIOS()
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (e.NewElement !=null)
{
if (Control != null)
{
#if DEBUG
Control.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
Control.VerticalAlignment = UIControlContentVerticalAlignment.Center;
Control.Layer.CornerRadius = 15;
Control.Layer.BorderWidth = 5;
Control.Layer.BorderColor = Color.Red.ToCGColor();
var uiImage = UIImage.FromFile(((Button)e.NewElement).Image.File);
var lineHeight = Control.TitleLabel.Font.LineHeight;
Control.ImageEdgeInsets = new UIEdgeInsets(-lineHeight, uiImage.Size.Width + (uiImage.Size.Width / 2), 0, 0);
Control.TitleEdgeInsets = new UIEdgeInsets(uiImage.Size.Height, -uiImage.Size.Width, 0, 0);
uiImage.Dispose();
#endif
}
}
}
}
Blockquote
* /.
Тот же код для IOS по этой ссылке stackoverflow.com/questions/38106050/…
Просто используйте button ... <Button x:Name = "btn2" ContentLayout = "Top,0" BackgroundColor = "White" Image = "iconRes.png" HorizontalOptions = "CenterAndExpand" Text = "click me" />
Проблема особенно с iOS на <ContentLayout = "Top, 0">, если текст шире изображения, изображение перемещается вправо, но не переходит на новую строку.
Я запутался, вы работаете с Xamarin или iOS? Вы все время упоминаете о проблемах, связанных с iOS, тогда кнопки .Net и Android работают на вас?
Я работаю с XamarinForms ... результат на Android в порядке.





XAML на самом деле не актуален. Было бы более полезно опубликовать код вашего рендерера и, возможно, снимок экрана, иллюстрирующий неправильное поведение