У меня есть он, где пользователь может перемещать изображение и uilabel вокруг экрана. Скажем, это черное изображение и черный текст. Я хочу, чтобы часть текста, которая накладывалась на изображение, стала прозрачной, чтобы фон показывался, и вы все равно можете читать текст, даже если они были изначально одного цвета. Надеюсь, это имеет смысл.Удаление части изображения, которое перекрывается с текстом из UILabel
Я нашел некоторые ссылки на стирание с прикосновением. Я не уверен, как это сделать с помощью части текста, который перекрывается.
Возможно, что-то вроде этого «Маскировка изображения с изображением»? https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_images/dq_images.html
Вот как я переместить изображение (а также текст)
-(void)graphicMoved:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}
Добавлен код Я звоню creatAlphaClippedImage на кнопку мыши после Я помещаю текст и изображение частично перекрывающиеся. Изображение - imageMerge, а ярлык - labelTest.
Все, что мне нужно, это назначить их в начале, а затем в конце, выполнить вывод impage и присвоить его imageMerge.image, который добавлен к моему представлению с помощью построителя интерфейса в углу, чтобы проверить. Я не знаю, что должен показать nslog, но он не пуст.
-(void)createAlphaClippedImage {
UIImageView *imageView = nil;//this will b your imageView, property that u are holding to
UILabel *label = nil;//this will be your label, property that u are holding to
imageView=imageMerge;
label=labelTest;
if (CGRectIntersectsRect(imageView.frame, label.frame)) {
UIImage *bottomImage = imageView.image;
UIImage *image = nil;
UIGraphicsBeginImageContextWithOptions(bottomImage.size, NO, 0.0);
CGRect imageRect = CGRectMake(0.0f, 0.0f, bottomImage.size.width, bottomImage.size.height);
[bottomImage drawInRect:imageRect];
//the color that u want the text to have
[[UIColor clearColor] set];
//change this textRect to change the position of text on image
CGRect textRect = CGRectMake(CGRectGetMinX(label.frame) - CGRectGetMinX(imageView.frame), CGRectGetMinY(label.frame) - CGRectGetMinY(imageView.frame), CGRectGetWidth(label.frame), CGRectGetHeight(label.frame));
[label.text drawInRect:textRect withFont:label.font];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imageView.image = image;
imageMerge.image=image;
NSLog(@"ImageMerge %@\n",imageMerge.image);
}
}
Спасибо за ответ ... Я попробую. –
Я ищу только часть текста, которая перекрывается, чтобы «вырезать» изображение. Я не вижу, где что-то о позиции текста, который мог бы это позволить? –
не является частью текста. UILabel поверх изображения, которое вы хотели сделать прозрачным (текст), пока вы перемещаете изображение. Или это какое-то изображение, которое оно предварительно загрузило txt? – croyneaus4u