У меня есть подкласс UISlider, который должен реализовывать пользовательский вид. Я делаю это с растягивающимися изображениями:
UIImage* sliderBar = [UIImage imageNamed: @"SliderLeft.png"];
UIImage* sliderLeft = [sliderBar stretchableImageWithLeftCapWidth: 7 topCapHeight: 0];
sliderBar = [UIImage imageNamed: @"SliderRight.png"];
UIImage* sliderRight = [sliderBar stretchableImageWithLeftCapWidth: 1 topCapHeight: 0];
UIImage* sliderRing = [UIImage imageNamed: @"SliderRing.png"];
UIImage* sliderRingH = [UIImage imageNamed: @"SliderRing-Highlighted.png"];
[self setMinimumTrackImage: sliderLeft forState: UIControlStateNormal];
[self setMaximumTrackImage: sliderRight forState: UIControlStateNormal];
[self setThumbImage: sliderRing forState: UIControlStateNormal];
[self setThumbImage: sliderRingH forState: UIControlStateHighlighted];
Это прекрасно работает на устройстве под управлением 3.1.3. Однако на устройстве iPad (3.2.x) или iOS 4.x выглядит, как будто он растягивает самые правые пиксели и никогда не рисует конечную крышку.
SliderLeft.png имеет ширину 8 пикселей (правый конец отсутствует), SliderRight.png составляет 11 пикселей.
Я не вижу, чтобы что-то здесь изменилось в UIImage или UISlider.
Есть ли здесь известные ошибки? Как я уже сказал, все это работало, когда я писал это, но новые ОС, кажется, ломали его.