输入字符串:2012年6月14日 - 01:00:00 UTC
输出本地字符串:美国东部时间2012年6月13日 - 21:00:00
我喜欢从中获得偏移
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSLog(@"Time Zone: %@", destinationTimeZone.abbreviation);
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我在我的应用程序中使用CustomCell实现了TableView,
我想UITableViewCell根据文字长度调整我的动态高度UITableViewCell,
这是快照 Customcell
:这是我的快照 UITableView
:代码段 heightForRowAtIndexPath
#define FONT_SIZE 14.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 10.0f
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
NSString *text = [DescArr objectAtIndex:[indexPath row]];
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = MAX(size.height, 100.0);
return height;
}
Run Code Online (Sandbox Code Playgroud)
正如您在第二张图片中看到的那样,单元格的高度是固定的,它不会随着文本(内容)大小而变化.
我哪里弄错了?如何根据其内容/文本制作标签或单元格以更新其大小?
我想获得UTC时间戳.我不能这样做,因为[[NSDate date] timeIntervalSince1970];它返回本地时区的时间戳.如何在iOS中获取UTC时间戳?
解决了我可以用[[NSDate date] timeIntervalSince1970];:)
所以以前,在Swift 2.2中我可以使用 Entity.image = UIImagePNGRepresentation(UIImage(named: "Image Name")!)
但现在在Swift 3.0中,似乎我们现在必须使用额外的步骤.Entity.image = NSData(data: UIImagePNGRepresentation(UIImage(named: "Image Name")!))或者相当于的对象UIImage(name: "Image Name")
是否有雨燕3.0一种新的方式,从去UIImage到NSData?
我试图将状态栏的颜色更改为蓝色或其他颜色.
这可能吗,还是Apple不允许这样做?
默认情况下,iPhone X上的状态栏如下所示:
但我想实现这个目标:
我尝试设置preferredStatusBarStyle为lightContent但只有在将状态栏后面的背景设置为黑色后才能使用.
为了修复圆角,我最后添加了另一个圆角的子视图.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
let roundedView = UIView(
frame: CGRect(
x: 0,
y: UIApplication.shared.statusBarFrame.height,
width: view.frame.width,
height: view.frame.height
)
)
roundedView.layer.cornerRadius = 10
roundedView.layer.masksToBounds = true
roundedView.backgroundColor = .white
view.addSubview(roundedView)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 60))
label.text = "Black statusbar!"
label.textAlignment = .center
roundedView.addSubview(label)
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是最好的方法..必须有更好的方法来实现这一目标.
UPDATE
这是一个可怕的想法,因为: …
我不知道为什么安全区域覆盖了我在 iPhone X 模拟器上的视图,但在 xCode 的视图调试中似乎没问题。是否有任何选项可以隐藏安全区域视图或将其删除?提前致谢!通过视图调试,我看不到任何视图或没有任何东西覆盖我的视图,没关系,真的很奇怪。
我在故事板中添加了这个 myView,它打开了安全区域布局指南。我尝试将 additionalSafeAreaInsets.top additionalSafeAreaInsets.bottom 设置为零,但它不起作用。
这是我如何做约束:
func setupGroupBView() {
self.groupBView = myView.create()
self.view.addSubview(groupBView)
self.groupBView.snp.makeConstraints({ (make) in
make.width.centerX.centerY.equalTo(self.view)
make.height.equalTo(screenHeight)
})
}
Run Code Online (Sandbox Code Playgroud)
我尝试将 myView 的顶部、底部设置为控制器的 view.top view.bottom 为 -44、-34,但仍然无法正常工作。

请帮忙!!!!
据我所知,这个问题已经被问过很多,很多倍左右.然而,随着Apple的发布最好,随着iOS 11的发布,它们似乎已经对它进行了一个看似不必要的改变UISearchBar,特别是它的视图层次结构.
此外,搜索栏的子视图中不再可访问搜索栏的"文本字段",导致所有先前的解决方案"访问"并更改文本字段的背景颜色或文本字段的任何属性那件事.
仅供参考: 我特别谈到文本背后的颜色......除非您将搜索栏样式指定为最小,否则现在从11开始默认为白色.
更新1:
因为我这个问题的帖子,我还没有找到一个有效的还是真的任何 真正解决这个问题.我似乎最接近的是深入了解外观,例如属性
[[UISearchBar class] appearanceWhenContainedInInstancesOfClasses:(nonnull NSArray<Class<UIAppearanceContainer>> *)]
Run Code Online (Sandbox Code Playgroud)
的UISearchBar.使用以下找到的UITextFieldvia方法:
if ([view isKindOfClass:[UITextField class]]) {
return (UITextField*)view;
}
UITextField *searchTextField;
for (UIView *subview in view.subviews) {
searchTextField = [self searchViewForTextFieldBg:subview];
if (searchTextField) {
break;
}
}
return searchTextField;
Run Code Online (Sandbox Code Playgroud)
您可以开始绘制要放置在视图后面的新背景视图.然而,我发现过于繁琐而无法继续追求的问题是用正确的框架/边界绘制一个视图来模仿原始背景.
希望有人能找到这个问题的实际解决方案.好想念苹果......
在Swift 4中,由于现在private在同一源代码文件中也可以看到扩展,它与fileprivate访问修饰符有什么不同?
背景:在Swift 3中,类中的私有变量在同一文件的扩展中不可见.为此,fileprivate必须使用.
我在我的app delegate中有以下代码作为在我的其他viewControllers中使用CoreData的快捷方式:
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
Run Code Online (Sandbox Code Playgroud)
但是,我现在收到错误消息:
"从后台线程调用UI API"和"UIApplication.delegate必须仅从主线程使用".
当我的应用程序在后台时,我正在使用CoreData,但这是我第一次看到此错误消息.有谁知道这里发生了什么?
更新:我试图在appDelegate类本身内移动它,并使用以下代码 -
let dispatch = DispatchQueue.main.async {
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
}
Run Code Online (Sandbox Code Playgroud)
现在,我无法再访问外部的广告和上下文变量AppDelegate.有什么我想念的吗?
ios ×9
swift ×9
objective-c ×4
date ×2
iphone-x ×2
statusbar ×2
xcode ×2
constraints ×1
ios10 ×1
ios11 ×1
nsdata ×1
row-height ×1
swift3 ×1
swift4 ×1
timestamp ×1
timezone ×1
uiimage ×1
uisearchbar ×1
uistatusbar ×1
uitableview ×1