一个段只能有一个图像或一个标题;它不能两者兼得。没有默认图像。
Apple 在UISegmentedController Reference中这么说。
有没有人想出一个通用的解决方案,让你有一个图标和文本?我有一个有四个段的分段控件。有用于自定义控件外观的选项,但它们似乎只为具有两个段的 UISegmentedControl 设计?
我正在讨论的想法:
- 放弃四个 UIButtons 的分段控件并自己处理“选定”状态
- 举起我的手,只需使用文字或图标即可。
- 你的建议...?
一个段只能有一个图像或一个标题;它不能两者兼得。没有默认图像。
Apple 在UISegmentedController Reference中这么说。
有没有人想出一个通用的解决方案,让你有一个图标和文本?我有一个有四个段的分段控件。有用于自定义控件外观的选项,但它们似乎只为具有两个段的 UISegmentedControl 设计?
我正在讨论的想法:
您可以通过将当前图像绘制到上下文中来创建新图像,绘制所需的文本,然后将该组合图像用作单段图像:
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;
您可能想尝试第三方替代方案,例如STSegmentedControl(没有关系,但我已经使用过它,听起来它可以为您提供所需的灵活性,而无需从头开始)。