Mono 带有图像和文本的UIButton

Mono 带有图像和文本的UIButton,mono,xamarin.ios,uibutton,Mono,Xamarin.ios,Uibutton,我知道关于在按钮中放置图像和文本有几个问题,但我仍然不能让它正常工作。我希望标题显示在图像下方。如果没有图像,标题将显示在我期望的位置。但是,如果存在图像,则不会显示标题 代码粘贴在下面。明天我可以尝试子类化UIButton并调整子视图,但这应该可以。我想。你能明白为什么不会吗 提前谢谢 private static float h = 200.0f; private static float w = 200.0f; private static float padding = 10.0f; p

我知道关于在按钮中放置图像和文本有几个问题,但我仍然不能让它正常工作。我希望标题显示在图像下方。如果没有图像,标题将显示在我期望的位置。但是,如果存在图像,则不会显示标题

代码粘贴在下面。明天我可以尝试子类化UIButton并调整子视图,但这应该可以。我想。你能明白为什么不会吗

提前谢谢

private static float h = 200.0f;
private static float w = 200.0f;
private static float padding = 10.0f;
private static float textheight = 20f;

for (int i=0; i<numPlants; i++)
{
    var button = UIButton.FromType (UIButtonType.RoundedRect);
    button.Frame = new RectangleF (padding * (i + 1) + (i * w),
                                   padding, w, (h + textheight + 2));
    UIImage img = _group.Plants[i].GetImage();
    if (img != null)
    {
        button.SetImage(img, UIControlState.Normal);
        button.ImageEdgeInsets = new UIEdgeInsets(0.0f, 0.0f, (textheight + 20), 0.0f);
    }

    button.TitleEdgeInsets = new UIEdgeInsets((h+2), 0.0f, 0.0f, 0.0f); 
    button.SetTitleColor(UIColor.Black, UIControlState.Normal);             
    button.SetTitle(_group.Plants[i].Pltnme, UIControlState.Normal);

    plantScrollView.AddSubview (button);

    Plant plt = _group.Plants[i];   
    button.TouchUpInside += (sender, e) => {
        _navController.PushViewController(new SecondViewController(plt), true);
    };
}
专用静态浮点数h=200.0f;
专用静态浮子w=200.0f;
专用静态浮动填充=10.0f;
专用静态浮动文本高度=20f;
对于(int i=0;i{
_navController.PushViewController(新的SecondViewController(plt),真);
};
}

您是否尝试过使用XIB或故事板,然后添加UIImageView和标签来创建您想要的内容?我觉得这比编码要简单得多。

谢谢您的想法!我也可以这样做。我仍在使用独立版本,所以我正试图让代码尽可能小。另一个问题是方法是我仍然需要按钮功能,所以我需要在上面放一个透明的按钮。在阅读其他人如何实现这种功能时,这个方法看起来是最简单的。