2013-08-12 3 views
1

У меня есть UISlider, что я хочу поставить пользовательский созданный UIImage на растяжку. Я создаю это так:resizableImageWithCapInsets на UISlider искажается в iOS 6 и выше

UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width * difference, image.size.height)]; 
    iv.backgroundColor = [BSFunctions getColorFromHex:@"f7f8fa"]; 
    iv.image = cappedImage; 
    [self addSubview:iv]; 

    UIGraphicsBeginImageContextWithOptions (iv.frame.size, YES, [[UIScreen mainScreen] scale]); 
    [iv.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    [iv removeFromSuperview]; 

    return img; 

Я могу подтвердить, что изображение создается право, и это выглядит следующим образом:

enter image description here

Однако, когда я положил его на ползунок и начинается изображение растягивать, это выглядит следующим образом: enter image description here

как я добавить его к слайдера следующее:

UIImage *newImage = [self imageStretchedOnLeft]; 
    UIImage *rightStretchImage = [newImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, newImage.size.width - 2, 0, 0)]; 
    [self setMinimumTrackImage:rightStretchImage forState:UIControlStateNormal]; 

Раньше это работало несколько сборок назад, и я ни о чем не прикасался, когда он внезапно прекратил работать. Что еще более удивительно, UISlider работает как на симуляторе iOS 5.1, и поэтому на iOS 5! Все это сводит меня с ума, и я не знаю, как подойти к нему. Любая помощь будет оценена по достоинству.

Я создаю приложение для прошивкой 5 и выше и тестирование его на IOS 6

ответ

2

решена проблема, как это:

if (iosVersion < 6.0){ 
    rightStretchImage = [newImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, newImage.size.width - 2, 0, 0)]; 
}else{ 
    rightStretchImage = [newImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, newImage.size.width - 2, 0, 0) resizingMode:UIImageResizingModeStretch]; 
} 
Смежные вопросы