MBProgressHUD 在 swift 中不工作:无法导入和使用
MBProgressHUD not working in swift: cannot import and use
我使用 cocoapods 安装 MBProgressHUB,但在桥接头中我不能这样做
#import "MBProgressHUD.h"
我改成了
#import "MBProgressHUD/MBProgressHUD.h"
导入没问题,但我不能在 swift 代码中使用它?我做错了什么?我该如何解决这个问题?
试试这个:
1) 将 Podfile
中的 use_frameworks!
指定为 use frameworks(而不是静态库)。
这是添加 Swift 中编写的 pods 作为依赖项所必需的,如果您的应用程序是用 Swift 编写的,这通常是个好主意。
2) 做 pod install
这可确保您的项目设置为实际使用上述内容。
3) 在桥接 header 中添加 #import <MBProgressHUD/MBProgressHUD.h>
(注意尖括号 - 而不是引号),并在需要的 Swift class 中添加 import MBProgressHUD
使用它。
即
MyApp-Bridging-Header.h :
#import <MBProgressHUD/MBProgressHUD.h>
// ... other imports ...
这会将 Objective-C 个文件公开给 Swift。尖括号表示这实际上是在导入一个框架。
MyViewController.swift :
import UIKit
import MBProgressHUD
// ... other imports...
class MyViewController: UIViewController {
// ... yada yada...
}
这实际上导入了供视图控制器使用的依赖项。
You can directly drag MBProgressHUD Folder to your swift project, It will create the Bridging header as named "YourAppName-Bridging-Header.h", it means you can import obj-c classes into your swift project.
'import UIKit
import MBProgressHUD
class MyViewController: UIViewController {
// write your code
}'
This actually imports the dependency for use by your view controller.
Pod和桥接文件添加后Swift3中可以直接使用
var hud = MBProgressHUD()
hud = MBProgressHUD.showAdded(to: navigationController?.view, animated:
true)
// Set the custom view mode to show any view.
hud.mode = MBProgressHUDModeCustomView
// Set an image view with a checkmark.
let gifmanager = SwiftyGifManager(memoryLimit:20)
let gif = UIImage(gifName: "miniballs1.gif")
let imageview = UIImageView(gifImage: gif, manager: gifmanager)
hud.labelText = NSLocalizedString("Loading", comment: "")
hud.labelColor = UIColor.red
imageview.frame = CGRect(x: 0 , y: 0, width: 25 , height: 25)
hud.customView = imageview
// Looks a bit nicer if we make it square.
hud.show(true)
创建易于使用且贯穿整个应用程序的扩展
extension UIViewController {
func showHUD(progressLabel:String){
DispatchQueue.main.async{
let progressHUD = MBProgressHUD.showAdded(to: self.view, animated: true)
progressHUD.label.text = progressLabel
}
}
func dismissHUD(isAnimated:Bool) {
DispatchQueue.main.async{
MBProgressHUD.hide(for: self.view, animated: isAnimated)
}
}
}
用法:
1.显示 - self.showHUD(progressLabel: "Loading...")
2。隐藏 - self.dismissHUD(isAnimated: true)
我使用 cocoapods 安装 MBProgressHUB,但在桥接头中我不能这样做
#import "MBProgressHUD.h"
我改成了
#import "MBProgressHUD/MBProgressHUD.h"
导入没问题,但我不能在 swift 代码中使用它?我做错了什么?我该如何解决这个问题?
试试这个:
1) 将 Podfile
中的 use_frameworks!
指定为 use frameworks(而不是静态库)。
这是添加 Swift 中编写的 pods 作为依赖项所必需的,如果您的应用程序是用 Swift 编写的,这通常是个好主意。
2) 做 pod install
这可确保您的项目设置为实际使用上述内容。
3) 在桥接 header 中添加 #import <MBProgressHUD/MBProgressHUD.h>
(注意尖括号 - 而不是引号),并在需要的 Swift class 中添加 import MBProgressHUD
使用它。
即
MyApp-Bridging-Header.h :
#import <MBProgressHUD/MBProgressHUD.h>
// ... other imports ...
这会将 Objective-C 个文件公开给 Swift。尖括号表示这实际上是在导入一个框架。
MyViewController.swift :
import UIKit
import MBProgressHUD
// ... other imports...
class MyViewController: UIViewController {
// ... yada yada...
}
这实际上导入了供视图控制器使用的依赖项。
You can directly drag MBProgressHUD Folder to your swift project, It will create the Bridging header as named "YourAppName-Bridging-Header.h", it means you can import obj-c classes into your swift project.
'import UIKit
import MBProgressHUD
class MyViewController: UIViewController {
// write your code
}'
This actually imports the dependency for use by your view controller.
Pod和桥接文件添加后Swift3中可以直接使用
var hud = MBProgressHUD()
hud = MBProgressHUD.showAdded(to: navigationController?.view, animated:
true)
// Set the custom view mode to show any view.
hud.mode = MBProgressHUDModeCustomView
// Set an image view with a checkmark.
let gifmanager = SwiftyGifManager(memoryLimit:20)
let gif = UIImage(gifName: "miniballs1.gif")
let imageview = UIImageView(gifImage: gif, manager: gifmanager)
hud.labelText = NSLocalizedString("Loading", comment: "")
hud.labelColor = UIColor.red
imageview.frame = CGRect(x: 0 , y: 0, width: 25 , height: 25)
hud.customView = imageview
// Looks a bit nicer if we make it square.
hud.show(true)
创建易于使用且贯穿整个应用程序的扩展
extension UIViewController {
func showHUD(progressLabel:String){
DispatchQueue.main.async{
let progressHUD = MBProgressHUD.showAdded(to: self.view, animated: true)
progressHUD.label.text = progressLabel
}
}
func dismissHUD(isAnimated:Bool) {
DispatchQueue.main.async{
MBProgressHUD.hide(for: self.view, animated: isAnimated)
}
}
}
用法:
1.显示 - self.showHUD(progressLabel: "Loading...")
2。隐藏 - self.dismissHUD(isAnimated: true)