안녕하세요, 저는 iOS 개발이 처음입니다. 이제 사용자 정의 tableView를 작업 중입니다.이 작업에서는 사용자 정의 tableViewCell을 사용하고 있습니다. 해당 셀에서 imageView에 텍스트 레이블을 추가하고 있습니다. 그러나 이미지보기에 텍스트 레이블이 표시되지 않습니다. 이미지 만 표시됩니다. 누구든지이 문제에 대한 해결책이 있다면 저를 도와주세요.
여기 내 코드입니다
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
ItemsCellVC *cell = (ItemsCellVC *)[TableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[ItemsCellVC alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
UIImage *background = [self cellBackgroundForRowAtIndexPath:indexPath];
UIImageView *cellBackgroundView = [[UIImageView alloc] initWithImage:background];
cellBackgroundView.image = background;
cell.backgroundView = cellBackgroundView;
if ([arrayForItemDictionary count]!=0) {
if (tableView == aSearchDisplayController.searchResultsTableView)
{
dictItemFromDatabase=[filteredListContent objectAtIndex:indexPath.row];
}
else
{
dictItemFromDatabase=[arrayForItemDictionary objectAtIndex:indexPath.row];
}
}
//cell.containerNameLabel.text=[dictItemFromDatabase valueForKey:@"PickerName"];
cell.itemNameLabel.text = [dictItemFromDatabase valueForKey:@"ItemNameTF"];
cell.containerImgView.image = [UIImage imageNamed:@"12-02 (1)"];
UIImage *image = [UIImage imageNamed:@"2-02 (1).png"];
cell.containerImgView.image = [self addText:image text:@"Hello there"];
return cell;
}
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{
int w = img.size.width;
int h = img.size.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
char* text= (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];
CGContextSelectFont(context, "Arial",20, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 0, 0, 0, 1);
CGContextShowTextAtPoint(context,10,10,text, strlen(text));
CGImageRef imgCombined = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
UIImage *retImage = [UIImage imageWithCGImage:imgCombined];
CGImageRelease(imgCombined);
return retImage;
}
열심히 노력한 후이 해결책을 얻었습니다.
이 방법을 tableViewCellVC.m 파일에서 사용했습니다.
@implementation UIImage (DrawWatermarkText)
-(UIImage*)drawWatermarkText:(NSString*)text {
UIColor *textColor = [UIColor grayColor];//[UIColor colorWithWhite:0 alpha:0.1];
UIFont *font = [UIFont systemFontOfSize:400];
// CGFloat paddingX = 50.f;
CGFloat paddingY = 200.f;
// Compute rect to draw the text inside
CGSize imageSize = self.size;
NSDictionary *attr = @{NSForegroundColorAttributeName: textColor, NSFontAttributeName: font};
CGSize textSize = [text sizeWithAttributes:attr];
// CGRect textRect = CGRectMake(imageSize.width - textSize.width - paddingX, imageSize.height - textSize.height - paddingY-50, textSize.width, textSize.height);
CGRect textRect = CGRectMake(imageSize.width - 1900, imageSize.height - textSize.height - paddingY, textSize.width, textSize.height);
// Create the image
UIGraphicsBeginImageContext(imageSize);
[self drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
[text drawInRect:CGRectIntegral(textRect) withAttributes:attr];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultImage;}@end
later on i had write following code in tableViewCellVC.h file as
@interface UIImage (DrawWatermarkText)
-(UIImage*)drawWatermarkText:(NSString*)text;
@end
And Finally in cellforRowAtIndexPath in tavelVC.m call this method only
UIImage *image = [UIImage imageNamed:@"12-02 (1)"];
cell.containerImgView.image = [image drawWatermarkText:@"Bharat"];
그런 다음 그 작품
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다