图片上的左边一个是来自Apple的日期和时间,一个是我的应用程序之一。您可能会看到我的应用程序文本显示低于Apple的文本。哪个看起来不漂亮。怎么解决这个问题?
self.statusBarItem.image = nil
self.statusBarItem.button?.imagePosition = .NoImage
self.statusBarItem.button?.title = "Sun 5 Jun 13:35"
答案 0 :(得分:2)
你可以用胶印来做。你不能这样做,因为它需要在状态项按钮栏上完成。
(function($) {
/**
* Returns a key in the provided object that is associated with the
* provided value.
*
* @param {object} object
* @param {object} value
*
* @return Returns a key.
*/
$.inObject = function(object, value) {
var result = null;
$.each(search, function(key, val) {
if (value === val) {
result = key;
return false;
}
});
return result;
}
}(jQuery));
var arr = ["44", "003"];
var search = {
0 : "003",
"a" : "88",
"b" : "44"
};
$.each(arr, function(index, value) {
console.log($.inObject(search, value));
});
答案 1 :(得分:0)
我想对此做个快速补充。虽然接受的答案确实可以根据问题的上下文来工作。如果您有图像,它将不起作用,因为这会移动所有内容(图像和文本)。我发现由于某种原因,图像在垂直方向居中,但文本未居中。
在这种情况下,您实际想要做的是设置NSAttributedString.Key.baselineOffset
,在其中您可以按以下方式得出基线值
var displayScale: CGFloat = 1.0
let pstyle = NSMutableParagraphStyle()
pstyle.alignment = .center;
let aStr = NSAttributedString(string: str, attributes: [NSAttributedString.Key.paragraphStyle: pstyle, NSAttributedString.Key.font: font])
if let main = NSScreen.main {
displayScale = main.backingScaleFactor
if displayScale <= 0.0 {
displayScale = 1.0
}
}
let textHeight = aStr.size().height
baselineOffset = ((font.ascender - font.descender) - textHeight) / displayScale
button.attributedTitle = = NSAttributedString(string: str, attributes: [NSAttributedString.Key.paragraphStyle: pstyle, NSAttributedString.Key.baselineOffset: baselineOffset, NSAttributedString.Key.font: font])
这里的免责声明是,我不确定displayScale
部分。我认为需要校正像素/点。
我只添加了这个答案,因为我一直在努力寻找一个好的答案。我的灵感来自于此:Center two fonts with different different sizes vertically in an NSAttributedString
如果这种技术是错误的,我很想知道,所以我可以解决它。