【问题标题】:CA overlay on UISegmentedControl is overwritten in iOS5UISegmentedControl 上的 CA 覆盖在 iOS5 中被覆盖
【发布时间】:2011-10-28 09:11:28
【问题描述】:

我有以下代码,它在 iOS 4 中会产生“已禁用”的 UISegmentedControl 的外观。细心的读者会注意到,我正在使用 MonoTouch 进​​行开发,因此使用的是 c# 语法。

private void MakeOverlayOnLastRatingSegment()
{
    RemoveOverlayOnLastRatingSegment();

    lastRatingDisabledLayer = new CALayer();
    lastRatingDisabledLayer.Frame = new RectangleF(new PointF(0, 0), segmLastRating.Frame.Size);

    lastRatingDisabledLayer.CornerRadius = 10.0f;
    lastRatingDisabledLayer.BackgroundColor = UIColor.FromRGBA(0.5f, 0.5f, 0.5f, 0.2f).CGColor;
    segmLastRating.Layer.AddSublayer(lastRatingDisabledLayer);
}

结果是:

但在 iOS5 上,结果有点不同。所选单元格之前的段写在我的灰色层之上。它需要仔细观察 - 在真实设备而不是模拟器上更明显。出于某种原因,模拟器的屏幕转储非常轻。

有没有其他人遇到过这种情况,有人有解决方法吗?

最好的问候 /安德斯

【问题讨论】:

  • 你有答案了吗?我面临同样的问题?
  • 可悲的是,我的解决方案变成了“接受它”。这是一个非常小的能见度痒。我的结论是,几乎没有用户会观察到它,甚至更少的用户会觉得它很烦人,而且绝对没有人会因为这个产品而批评该产品。所以我们接受它 - 但如果你确实找到了解决方案,请发布它。

标签: c# uikit xamarin.ios ios5 calayer


【解决方案1】:

你能把你的覆盖层添加到分段控件的超级视图层吗?或者可能是分段控件层的超层?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多