Monotouch:定制UITableViewCell内的关系项

时间:2012-11-29 12:16:14

标签: ios cocoa-touch xamarin.ios

如何根据图像和文本的存在来对齐它们。例如,我有2个图像,我需要将它们垂直放置在另一个上面,但是当任何一个丢失(未提供)时,另一个应该垂直居中。

1 个答案:

答案 0 :(得分:1)

此代码假设您具有基本的图像视图帧设置(大小和x位置)。 它在视图中垂直放置一组视图,间距相等。如果集合只有一个图像,它甚至可以居中。

    UIImageView img1, img2;
        List<UIView> subViews;

        if (img1 != null)
        {
            subViews.Add(img1);
        }


        if (img2 != null)
        {
            subViews.Add(img2);
        }

        float totalHeight = 0;

        foreach (UIView subView in views)
        {
            totalHeight += subView.Frame.Height;                
        }

        float spacing = (this.Bounds.Height - totalHeight) / (subView.Length +1) ;
        float currentY = 0;

        foreach (UIView subView in subViews)
        {
            currentY += spacing;

            if (subView.Superview == null)
            {
                this.Add (subView);
            }

            subView.Frame = new RectangleF(subView.Frame.X,currentY,subView.Frame.Width, subView.Frame.Height);

            currentY += subView.Frame.Height;

        }