8

一个段只能有一个图像或一个标题;它不能两者兼得。没有默认图像。

Apple 在UISegmentedController Reference中这么说。

有没有人想出一个通用的解决方案,让你有一个图标和文本?我有一个有四个段的分段控件。有用于自定义控件外观的选项,但它们似乎只为具有两个段的 UISegmentedControl 设计?

我正在讨论的想法:

  1. 放弃四个 UIButtons 的分段控件并自己处理“选定”状态
  2. 举起我的手,只需使用文字图标即可。
  3. 你的建议...?
4

2 回答 2

10

您可以通过将当前图像绘制到上下文中来创建新图像,绘制所需的文本,然后将该组合图像用作单段图像:

UIGraphicsBeginImageContextWithOptions(size, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();

// Text first
[myString drawAtPoint:somePoint withFont:font];

// Images upside down so flip them 
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
CGContextConcatCTM(context, flipVertical);
CGContextDrawImage(context, (CGRect){ imagePoint, imageSize }, [myUIimage CGImage]);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
于 2012-09-04T22:22:58.763 回答
5

您可能想尝试第三方替代方案,例如STSegmentedControl(没有关系,但我已经使用过它,听起来它可以为您提供所需的灵活性,而无需从头开始)。

于 2012-09-04T22:22:09.150 回答