Почему на левой стороне моей границы UIImageView появляется узкая белая линия? - PullRequest
1 голос
/ 23 октября 2011

Ненужная белая линия размером 1 пиксель появляется в левой части моего UIViewImage.Я использую QuartzCore для применения границы:

...
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

[imageView.layer setBorderColor: [[UIColor BORDERCOLOR4ALLVIEWS] CGColor]];
[imageView.layer setBorderWidth: BORDERSIZE4ALL];
...

Представление изображения находится внутри ScrollView.У меня есть список уменьшенных изображений в нижней части экрана.Когда пользователь нажимает на миниатюру, я загружаю изображение и передаю его в MyUIImageView.image.Вот код, который выполняется при нажатии:

MyUIImageView.image = [UIImage imageNamed:imageName];
CGRect rect = MyUIImageView.frame;
rect.size.width = MyUIImageView.image.size.width; //also tried with - 1;
rect.size.height = MyUIImageView.image.size.height //also tried with - 1;

MyUIImageView.frame = rect; 

// also tried redraw a border on the image view:

[MyUIImageView.layer setBorderColor: [[UIColor BORDERCOLOR4ALLVIEWS] CGColor]];
[MyUIImageView.layer setBorderWidth: BORDERSIZE4ALL];

Заметили, что строка появляется только на одном изображении.Однако, если я дополнительно уменьшу размер рамки вида изображения, вычитая -1, тогда и на других изображениях появятся белые линии.Вот пример изображения с белой линией:

enter image description here

Ответы [ 2 ]

7 голосов
/ 23 октября 2011

После установки MyUIImageView.clipsToBounds в YES белая линия исчезла :)

0 голосов
/ 23 октября 2011

Полагаю, белая линия - это фоновый цвет scrollView.Попробуйте установить черный цвет фона прокрутки для просмотра.

И если это не поможет, попробуйте установить цвет фона для просмотра изображения в clearColor.

...