以编程方式添加到UITableViewCell的UIButtons永远不会出现

时间:2010-10-06 00:13:02

标签: uitableview ios uibutton xamarin.ios

尝试创建一个包含按钮的简单表,其中按钮是在运行时生成的;该表出现,并具有正确的行数等,但行似乎是空的。

    public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
    {
        // The NavItem class is a "Josh Bloch enum" with n ordered members
        NavItem item = NavItem.ByOrder(indexPath.Row);
        var cell = tableView.DequeueReusableCell(item.Name);
        if (cell == null)
        {
            cell = new UITableViewCell(UITableViewCellStyle.Default, item.Name);
            UIButton button = UIButton.FromType(UIButtonType.RoundedRect);
            button.SetTitle(item.Name, UIControlState.Normal);
            cell.ContentView.AddSubview(button);
            // cell.TextLabel.Text = item.Name;
            // cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
        }
        return cell;
    }

没有按钮,注释掉的纯文本版本可以正常工作。

我对iOS来说是全新的,所以我假设有一些关于组件尺寸或定位或布局的东西,我在这里缺少 - 任何人都知道它是什么?

1 个答案:

答案 0 :(得分:4)

通常当我遇到这种问题时,这是因为我没有为对象指定框架。因此,在此示例中,尝试在将按钮添加到单元格的子视图之前设置该按钮的框架。 E.g。

button.Frame = new RectangleF(xcord, ycord, width, height);

请注意,因为您将按钮添加到单元格的子视图中,x和y坐标相对于该单元格。