- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下类来添加和删除事件指示器 View :
import Foundation
import UIKit
class ViewControllerUtils {
var container: UIView = UIView()
var loadingView: UIView = UIView()
var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
func showActivityIndicator(uiView: UIView) {
container.frame = uiView.frame
container.center = uiView.center
container.backgroundColor = UIColorFromHex(rgbValue: 0xffffff, alpha: 0.3)
loadingView.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
loadingView.center = uiView.center
loadingView.backgroundColor = UIColorFromHex(rgbValue: 0x444444, alpha: 0.7)
loadingView.clipsToBounds = true
loadingView.layer.cornerRadius = 10
activityIndicator.frame = CGRect(x: 0, y: 0, width: 40, height: 40);
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
activityIndicator.center = CGPoint(x: loadingView.frame.size.width / 2, y: loadingView.frame.size.height / 2);
loadingView.addSubview(activityIndicator)
container.addSubview(loadingView)
uiView.addSubview(container)
activityIndicator.startAnimating()
}
func hideActivityIndicator(uiView: UIView) {
print("hideActivityIndicator called")
activityIndicator.stopAnimating()
activityIndicator.removeFromSuperview()
loadingView.removeFromSuperview()
container.removeFromSuperview()
}
func UIColorFromHex(rgbValue:UInt32, alpha:Double=1.0)->UIColor {
let red = CGFloat((rgbValue & 0xFF0000) >> 16)/256.0
let green = CGFloat((rgbValue & 0xFF00) >> 8)/256.0
let blue = CGFloat(rgbValue & 0xFF)/256.0
return UIColor(red:red, green:green, blue:blue, alpha:CGFloat(alpha))
}
}
我在 tableview 和 view 中调用函数的方式如下:
override func viewDidLoad() {
super.viewDidLoad()
ViewControllerUtils().showActivityIndicator(uiView: self.tableView)
invitedEvents()
}
加载数据后,我尝试删除事件指示器,但它没有删除。
func invitedEvents() {
//calling firebase
DataService.ds.REF_USER_CURRENT.observe(.value, with: { (snap) in
ViewControllerUtils().hideActivityIndicator(uiView: self.tableView)
})
}
当加载 tableview 时正在打印 hideActivityIndicator 被调用,但它没有从 View 中删除。
我也在 View 中调用函数,结果相同:showActivityIndicator 正常工作,hideActivityIndicator 不工作。
我使用以下参数调用 View 中的函数:
ViewControllerUtils().showActivityIndicator(uiView: self.view)
ViewControllerUtils().hideActivityIndicator(uiView: self.view)
有人知道我错过了什么吗?
最佳答案
如果您每次编写 ViewControllerUtils()
,您都在创建 ViewControllerUtils 类的新实例,因此一旦您使用一个实例显示事件指示器,就必须获得相同的事件指示器实例以删除它与你添加它。因此,您可以将 ViewControllerUtils
作为单例类并使用它。
class ViewControllerUtils {
static let shared = ViewControllerUtils()
private override init() {
}
}
现在像这样调用你的方法..
ViewControllerUtils.shared.showActivityIndicator(uiView: self.tableView)
ViewControllerUtils.shared.hideActivityIndicator(uiView: self.tableView)
关于ios - removeFromSuperview() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45660752/
我确信这是一些愚蠢的错误,但在过去的一个小时里我试图从我的 super View 中删除 subview ,但没有成功。 在我第一次观看时 UIViewController *helpView = [
我不知道如何描述正常场景,调用removeFromSuperview时会导致0.3%崩溃。 这是跟踪: Exception Type: SIGSEGV Exception Codes: SEGV_AC
我在 tvOS 项目中有此代码 var loader: UIViewController! 。 。 . override func viewDidLoad() { super.viewDidL
我有一个带有后退按钮的页面,可以将我带到收件箱。我在 viewWillDisappear 中执行此操作 - -(void)viewWillDisappear:(BOOL)animated { [sup
我添加了多张图片并缩放显示它们。由于内存大小有限,我应该尝试删除其中一些已经通过 removeFromSuperview 看到的内容。我的问题是,当我尝试缩放时,所选图像被 removeFromSup
我有一个从 xib 加载的 UIView 子类,如下所示: // The xib custom view private var view: UIView! override init(frame:
我有以下类来添加和删除事件指示器 View : import Foundation import UIKit class ViewControllerUtils { var container: UI
另一个让我头疼的问题。我以编程方式创建了一个 UIButton。它的唯一目的是站在另一个已按下半秒钟的按钮之上。底部按钮是图片,顶部按钮是垃圾桶。您可以在这里看到我正在尝试做的事情:我有一张图片,要删
我在用 Objective-C 编程对象时有一个小问题。我有一个即将完成的应用程序,一切正常。我的问题是我将我的对象设置为 nil 并在适当的时候释放它们。 但这足够了吗?我应该在何时何地使用 rem
我有六个 ImageView ,我这样设置它们: img1 img2 img3 img4 img5 img6 但是当我使用 removeFromSuperview 函数删除 img1 时,其他 Ima
我有一个 MBProgressHUD,我分配如下: self.progressHUD_ = [[[MBProgressHUD alloc] initWithView:self.view] autor
在使用 imagePickerController 选择图像后,我尝试使用 Core Data 从我的 ViewController.swift 中保存一个对象。我在保存时显示带有微调器的 View
我声明了一个名为 var progressBar 的 UIView 变量:UIView? 我用这个函数显示或隐藏 View func showProgressBar(showBar: Bool){ i
我想在询问触摸 ID 时模糊背景,一旦授权成功,viewcontroller 需要可见。但这没有发生。即使授权成功,viewcontroller 仍然模糊。谁能帮我如何解决这个问题? import U
我需要能够从 View 中删除一个按钮并添加一个不同的按钮。我的代码如下所示: -(void)UpdatePromoBanner:(NSString*)value{ [button setTi
我想制作从 subview 返回到 super View 的动画。 我使用以下方式显示 subview : [UIView beginAnimations:@"curlup" context:nil]
我有一个方法,可以对 UIWindow 的一个 subview 进行动画处理,然后使用 removeFromSuperview 将其从 UIWindow 中删除。但是当我将 removeFromSup
我正在尝试使用以下代码从现有 View 中删除图像: -(void) deleteImage:(int)imageID{ //[self.imageArray removeObjectAtIndex:
我目前正在做一个 ipad 项目并找到了这个。所以这是我的结构 我将 uiviewcontroller 子类化为 customizedVC,像这样 @protocol customizedVCDele
我正在使用 GADBannerView 来展示横幅广告。这是我加载广告的方式: override func viewDidAppear(_ animated: Bool) { supe
我是一名优秀的程序员,十分优秀!