gpt4 book ai didi

iphone - 更改 UIActionSheet 标题字符串的字体类型和大小

转载 作者:可可西里 更新时间:2023-11-01 03:01:16 25 4
gpt4 key购买 nike

我有一个标题字符串为“DO:这些任务”的 UIActionSheet。在标题字符串中,子字符串“DO:”应为粗体(具有特定字体大小),子字符串“这些任务”应为常规。可能吗?我该怎么做?

最佳答案

我假设您有一个实现 UIActionSheetDelegate 协议(protocol)的类并且您的类是当前 UIActionSheet 的委托(delegate)类,因此在该类中您可以 像这样更改 UIActionSheet 的整个标题

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
for (UIView *_currentView in actionSheet.subviews) {
if ([_currentView isKindOfClass:[UILabel class]]) {
[((UILabel *)_currentView) setFont:[UIFont boldSystemFontOfSize:15.f]];
}
}
}

但据您所知,您没有机会格式化 UILabel 对象的 text 属性的部分。


您现在可以为您的 actionsheet 添加一个新的 UILabel,如果您想查看带有粗体 DO: string... 但这里的限制只是您的想象力,您可以在此方法中或在 -didPresentActionSheet: 方法中格式化 UIActionSheet 的元素。

所以这就是想法

2013 年 10 月 7 日更新

在 iOS7 中,我们实际上无法直接访问 UIAlertView UIActionSheet 的 subview 对象,因此此解决方案可能无法在 iOS7 环境中正常工作。

如果您在 iOS7 上有任何问题,请给我留言!谢谢。

2014 年 6 月 22 日更新

我还没有找到任何解决方案来直接使用 iOS8 中的新 UIAlertController 做这样的事情,标题标签在 UIAlertController ,在它出现之前甚至之后都不可见。

注意:我还发现不禁止重叠/覆盖其内容,它出现在屏幕上。目前无法预测它是否会在 Beta 版上运行,或者它是否对 AppStore 安全。

注意:请牢记 View 生命周期的时间表,不要尝试在 View 或 View Controller 中呈现导航堆栈中尚未存在的任何内容。

无论如何,这是一个Swift 解决方案,我可以如何到达这些层并向其中添加我的自定义 View 。

let alertController: UIAlertController = UIAlertController(title: "", message: "", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alertController, animated: true, completion: {
let aboveBlurLayer: UIView = alertController.view.subviews[0] as UIView
let belowBlurLayer: UIView = (aboveBlurLayer.subviews[0].subviews as Array<AnyObject>)[0] as UIView
let customView: UIView = UIView(frame: aboveBlurLayer.bounds)
customView.backgroundColor = UIColor.redColor()
aboveBlurLayer.addSubview(customView)
})

注意:将自定义内容添加到警报/操作表中可能会有用,但如果将来不起作用,我会更新我的答案。

关于iphone - 更改 UIActionSheet 标题字符串的字体类型和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com