Так что я пытаюсь вставить оба изображения и текст в UISegmentControl
. Теперь в этом segmentControl
. Я ищу, чтобы разместить изображение сверху и текст внизу. Так что я использую категорию на UIImage, чтобы нанести на нее название, как показано ниже. Однако мое изображение и текст по-прежнему неуместны после многих усилий. Кто-нибудь сделал это раньше, чем правильно? Любая помощь приветствуется.Центрирование изображения и вертикально в UISegmentControl ios?
+ (id)imageFromImage:(UIImage*)image string:(NSString*)string color:(UIColor*)color
{
UIFont *font = [UIFont fontWithName:@"Helvetica" size:16];
CGSize expectedTextSize = [string sizeWithAttributes:@{NSFontAttributeName: font}];
int width = expectedTextSize.width + image.size.width + 5;
int height = MAX(expectedTextSize.height, image.size.width);
CGSize size = CGSizeMake((float)width, (float)height);
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
int fontTopPosition = (height + expectedTextSize.height)/2;
CGPoint textPoint = CGPointMake(image.size.width/2, fontTopPosition);
[string drawAtPoint:textPoint withAttributes:@{NSFontAttributeName: font}];
// Images upside down so flip them
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
CGContextConcatCTM(context, flipVertical);
CGContextDrawImage(context, (CGRect){ {50,0},{image.size.width-10,image.size.height-10}}, [image CGImage]);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Непонятно, как? Не могли бы вы описать, что пошло не так? Я рад запустить ваш код и посмотреть, что он делает, но какую проблему я должен искать? В конце концов, изображение и строка, вероятно, размещаются именно там, где их код ставит, так как я знаю, что вы намерены, если ваш код не выражает это? – matt
На самом деле мое название уходит далеко внизу в сегменте, поэтому почти делает его невидимым ... и для изображения я даю x = 50 значение. Так что это не идеально, не так ли? . Я имею в виду предоставление жестко заданной ценности. Но я не знаю другого подхода на данный момент. – iSD
Ладно, проблема заключается не в том, что изображение и строка рисуются «неуместными», но все это прекрасно подходит для сегмента? – matt