Я относительно новичок в iOS, так что будьте спокойны! В моем приложении мне нужно иметь кнопку, которая содержит изображение заголовка. Изображение должно идти над заголовком. Изображение определяется динамически из строки base64.
Моя проблема в том, что я не могу понять, как отобразить заголовок и изображение в кнопке одновременно. Я могу отображать их по отдельности, но не вместе. Я попытался следовать подходу по ссылке ниже, но я не смог заставить его работать:
Кнопка отображения с текстом и изображением в Xamarin IOS
Вот как должна выглядеть кнопка:
В Xamarin iOS я использую приведенный ниже код, чтобы установить изображение и выложить элементы управления на кнопке:
DeviceMenuItems m_menuItem = HHMenuContainer.Instance.GetMenuItems().DeviceMenuItems.SingleOrDefault(l => l.LineNo.ToString() == m_lineNo);
if (m_menuItem != null && m_menuItem.Base64Picture != null)
{
byte[] bytes = Convert.FromBase64String(m_menuItem.Base64Picture);
NSData data = NSData.FromArray(bytes);
UIImage uiimage = UIImage.LoadFromData(data);
//this line is not relevant to the problem
uiimage = ChangeImageBackground(uiimage);
if (uiimage != null)
{
//m_control is the UIButton
//commenting this out removes the image and shows the text
m_control.SetImage(uiimage, UIControlState.Normal);
float titleLabelHeight = (float)(m_control.TitleLabel.Frame.Size.Height + 10);
m_control.ImageEdgeInsets = new UIEdgeInsets(-(titleLabelHeight), 0, titleLabelHeight, 0 );
float imageHeight = (float)(m_control.ImageView.Frame.Size.Height * 0.5);
imageHeight -= titleLabelHeight;
m_control.TitleEdgeInsets = new UIEdgeInsets(imageHeight, 0, -(imageHeight), 0);
}
}
С помощью приведенного выше кода я получаю следующую кнопку (без обязательного текста):
Если я прокомментирую строку «SetImage», я получу следующую кнопку:
У кого-нибудь есть идеи, почему вышеуказанный подход не работает?