草庐IT

layout_main

全部标签

ios - 如何判断一条语句是否需要放在DispatchQueue.main.async中?

我正在尝试在viewDidLoad中获取subview的绑定(bind)大小:(canvas.bounds)最初我没有使用DispatchQueue.main.async包装器,并且没有正确返回大小。所以通过实验,我将语句包装在主线程队列中。然后它起作用了。我知道有一个指南说“UI相关操作需要放在主线程”。但这如何转化为实际的编码经验法则:如果我只是查询一个UI属性,比如获取边界大小,我是否需要将它包装在主线程队列中吗?如果我要更改UI属性(property),例如改变边界大小,我需要把它包在里面吗主线程队列?(我想可能是的)overridefuncviewDidLoad(){supe

ios - 线程池 : DispatchQueue. main.async

我从事过Java工作,并且非常清楚线程和线程池的工作原理。我想知道是否有人可以解释如何在swift中创建线程和在线程池中分配空间?还有,是吗Dispatch.main.async{//somecode}创建新线程还是异步执行任务?提前致谢=) 最佳答案 队列和线程是不同的概念。队列是要执行的block的有序(有时是优先级)序列。作为(主要)实现细节,block必须被安排到线程上才能执行,但这不是它们的重点。所以Dispatch.main.async分派(dispatch)(追加)一个block到主队列。主队列是串行的并且有些特殊,因

ios - 错误 : UICollectionView must be initialized with a non-nil layout parameter

我正在尝试从youtube教程创建一个类似FacebookMessenger的应用程序。我有一个主页,用户可以在其中单击BarButton打开聊天。主页工作正常,直到我单击BarButton打开聊天,它崩溃并显示以下错误消息“必须使用非零布局参数初始化UICollectionView”。我是iOS开发的新手,所以无法真正理解问题出在哪里,因为我已经有了init方法。由于我有不同的观点,我是否在AppDelegate中遗漏了什么,这令人困惑:(。非常感谢您的帮助。谢谢!classChatViewController:UICollectionViewController,UICollect

ios - swift 4 错误 : '-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread

当互联网连接处于事件状态时,该应用程序运行良好。但是,我尝试关闭互联网连接并尝试使用端点。我遇到了这个错误:***Terminatingappduetouncaughtexception'NSInternalInconsistencyException',reason:'-[UIKeyboardTaskQueuewaitUntilAllTasksAreFinished]mayonlybecalledfromthemainthread.'几点:a)首先,我不清楚我应该在哪个地方使用async-我在switch语句中针对两种不同的情况将它放在了两个地方。b)其次,我是否使用error.lo

swift - 什么替换了 Xcode 6.3 中的 "main.m"文件

这个问题在这里已经有了答案:Whatistheentrypointofswiftcodeexecution?(6个答案)关闭7年前。根据IOS开发者库:https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.htmlma​​in.m中的主要函数调用自动释放池中的UIApplicationMain函数。但是,在XCode6.3中似乎不再有“main.m”文件。什么替换了“main.m”文件?谢谢。

ios - 自定义TableViewCell触发NSLayoutConstraint错误 'UIView-Encapsulated-Layout-Height'

我对单元格使用自动高度。每次我想用新数据(这里是模型变量)更新我的单元格时,我更新了我的自动布局约束,但我得到了一个错误。这里只是为了说明问题,我什至没有更改约束。我只是要求重新计算布局。在单元格的第一个初始化:没有警告,没问题。错误:代码:tableView.rowHeight=UITableViewAutomaticDimensionoverridefunctableView(_tableView:UITableView,estimatedHeightForRowAtindexPath:IndexPath)->CGFloat{return500}classTestTableView

ios - 当 SLComposeViewController 加载时,它会旋转到设备方向,即使我已将 Main UIViewController 固定为 Portrait

我正在iOS8.1中开发通用应用。我希望该应用始终以纵向显示。我通过添加以下代码来强制它。这是有效的。在AppDelegate中:funcapplication(application:UIApplication,didFinishLaunchingWithOptionslaunchOptions:[NSObject:AnyObject]?)->Bool{//Overridepointforcustomizationafterapplicationlaunch.letvalue=UIInterfaceOrientation.Portrait.rawValueUIDevice.curre

Android 布局文件夹 : layout, layout-port, layout-land

我不确定是否理解好几个Android/res/layout文件夹所起的作用。layout:一般布局layout-port:必须更改为纵向的小部件布局layout-land:小部件的布局,必须更改为横向例如在Home中示例应用程序,在layout-port和layout-land文件夹下只有一个home.xml文件。我理解对了吗? 最佳答案 如果您在横向或纵向,Android首先在-port或-land目录中查找布局文件,如果未找到则回退到默认布局目录。您可以阅读有关提供替代资源的信息here.除了陆路和港口,还有更多选择。

Android 布局文件夹 : layout, layout-port, layout-land

我不确定是否理解好几个Android/res/layout文件夹所起的作用。layout:一般布局layout-port:必须更改为纵向的小部件布局layout-land:小部件的布局,必须更改为横向例如在Home中示例应用程序,在layout-port和layout-land文件夹下只有一个home.xml文件。我理解对了吗? 最佳答案 如果您在横向或纵向,Android首先在-port或-land目录中查找布局文件,如果未找到则回退到默认布局目录。您可以阅读有关提供替代资源的信息here.除了陆路和港口,还有更多选择。

android - android.intent.action.MAIN 是什么意思?

我见过很多不同的令人困惑的解释..什么意思和和 最佳答案 ACTION_MAIN被认为是应用程序的入口点。通常,它与CATEGORY_LAUNCHER结合使用。在指示应该出现在主屏幕的启动器中的Activity,或任何其他认为自己是启动器的Activity。此类“发射器”可查询PackageManager,使用queryIntentActivities(),以查找此类Activity并将其显示给用户。但是,ACTION_MAIN可以与其他类别组合用于其他特殊目的。例如,CATEGORY_CAR_DOCK与ACTION_MAIN表示当