//Screen Size Label
if (_screenFontEnable) {
[_sfColor set];
NSString *canvasLabel = [NSString stringWithFormat:@"%@ \n W:%i/H:%i",_label,screenSizeWidth,screenSizeHeight ];
[canvasLabel drawAtPoint:NSPointFromString([NSString stringWithFormat:@"{%i,%i}",boarder+(((screenSizeWidth/2)-_screenFontSize)),boarder+((screenSizeHeight/2)-_screenFontSize)]) withAttributes:@{NSFontAttributeName:[NSFont systemFontOfSize:screensize], NSForegroundColorAttributeName:_sfColor}];
}你好,所以我试图将我的文本居中,由用户输入像素绘制的矩形的中心它可以是100x100或1000x1000,因为他们喜欢来自ScreenSizeWidth或ScreenSizeHeight的。用户还可以输入打印在绘制矩形顶部的ScreenFontSize。screenFontsize会改变,屏幕大小也会改变,因此在矩形中打印的字符数也会改变。
我想出了如何将它放在垂直轴的中心,但不知道如何水平放置。
这个想法可能是以某种方式获得屏幕尺寸标签的宽度,并以矩形宽度的大小为中心,但如何做到这一点超出了我的能力范围。
下面是它在上面的当前代码中打印的内容-- enter image description here
发布于 2016-06-05 12:18:21
您可以使用NSString方法之一:
- (NSSize)sizeWithAttributes:(NSDictionary<NSString *, id> *) attributes
- (NSRect)boundingRectWithSize:(NSSize)size
options:(NSStringDrawingOptions)options
attributes:(NSDictionary<NSString *, id> *)attributes
context:(NSStringDrawingContext *)context确定渲染时文本的长度,然后计算居中所需的数学运算。
HTH
https://stackoverflow.com/questions/37633923
复制相似问题