Оверлей CA на UISegmentedControl перезаписывается в iOS5 - PullRequest
1 голос
/ 28 октября 2011

У меня есть следующий код, который в 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);
}

И результат:

Disabled UISegementedControl in iOS4

Но на iOS5результат немного другой.Сегмент перед выбранной ячейкой написан поверх моего серого слоя.Это требует немного более пристального взгляда - более очевидный на реальном устройстве вместо симулятора.По какой-то причине шум от симулятора очень легкий.

Disabled UISegmentedControl in iOS5

Кто-нибудь еще испытал это, и есть ли у кого-нибудь обходной путь?

С уважением, Андерс

1 Ответ

0 голосов
/ 03 октября 2012

Не могли бы вы добавить свой оверлейный слой к слою супервизии сегментированного элемента управления? Или, может быть, суперслой слоя сегментированного элемента управления?

...