在表格视图行的右侧显示 activity 指示器
Displaying activity indicator to the right of tableview row
我的表格视图将披露指示器作为附件。此 tableview 单元格的 didSelectItem()
调用在后台执行 api 调用。因此视图需要等到响应才能显示下一页。我必须为披露指示器的位置提供一个 activity 指示器。怎么可能像 ios 设置页面
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Returns the cell value for each index
let cell = tableView.dequeueReusableCell(withIdentifier: TenantCell.identifier, for: indexPath) as! TenantCell
cell.populate(with: tenantList[indexPath.row])
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
Api.domain = tenantList[indexPath.row].url!
sharedAFManager.getJsonData(api: Api.theme, completionHandler: { (response, statusCode) in
if let theme = response {
Api.logo = theme["logo"].stringValue
Constants.passwordRegx = theme["passwordRegex"].stringValue
self.performSegue(withIdentifier: Segue.login, sender: indexPath.row)
}
})
}
/// UITableview cell populating tenant informations
class TenantCell: UITableViewCell {
@IBOutlet weak var tenantImage: UIImageView!
@IBOutlet weak var tenantNameLabel: UILabel!
@IBOutlet weak var tenantUrlLabel: UILabel!
func populate(with tenant: Tenant) {
tenantNameLabel?.text = tenant.name
tenantUrlLabel?.text = tenant.url
tenantImage.image = UIImage(named: "breifcase")
}
}
根据您的要求在TableViewCell
中添加Activity指标
class TenantCell: UITableViewCell {
@IBOutlet weak var tenantImage: UIImageView!
@IBOutlet weak var tenantNameLabel: UILabel!
@IBOutlet weak var tenantUrlLabel: UILabel!
@IBOutlet weak var activityIndi: UIActivityIndicatorView!
func populate(with tenant: Tenant) {
tenantNameLabel?.text = tenant.name
tenantUrlLabel?.text = tenant.url
tenantImage.image = UIImage(named: "breifcase")
if tenant.isLoaderShow{
activityIndi.startAnimating()
}else{
activityIndi.stopAnimating()
}
向您的租户模型添加一个 Bool
变量 isLoaderShow
并根据 api 完成更改并重新加载 tableView
或重新加载 tableViewCell
首先将右箭头图像和 activity 指示器放在 tableviewCell
中。 (默认
right_Arrow_image.isHidden = false and indicator.isHidden = true
)
在didSelectRowAt
方法中隐藏right_Arrow_image.isHidden = true
和indicator.isHidden = false
然后调用您的 webservice
并在收到响应后再次将其设置为第一步并移至下一个屏幕
请写在cellForRowAt
方法中:
cell.accessoryType = .disclosureIndicator
然后在didSelectRowAt
方法中请写
guard let cell : TenantCell = (tableView.cellForRow(at: indexPath) as! TenantCell) else {
return
}
cell.accessoryView = activityIndi
activityIndi. startAnimating()
收到回复后
activityIndi. stopAnimating()
可能对你有帮助。谢谢
我的表格视图将披露指示器作为附件。此 tableview 单元格的 didSelectItem()
调用在后台执行 api 调用。因此视图需要等到响应才能显示下一页。我必须为披露指示器的位置提供一个 activity 指示器。怎么可能像 ios 设置页面
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Returns the cell value for each index
let cell = tableView.dequeueReusableCell(withIdentifier: TenantCell.identifier, for: indexPath) as! TenantCell
cell.populate(with: tenantList[indexPath.row])
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
Api.domain = tenantList[indexPath.row].url!
sharedAFManager.getJsonData(api: Api.theme, completionHandler: { (response, statusCode) in
if let theme = response {
Api.logo = theme["logo"].stringValue
Constants.passwordRegx = theme["passwordRegex"].stringValue
self.performSegue(withIdentifier: Segue.login, sender: indexPath.row)
}
})
}
/// UITableview cell populating tenant informations
class TenantCell: UITableViewCell {
@IBOutlet weak var tenantImage: UIImageView!
@IBOutlet weak var tenantNameLabel: UILabel!
@IBOutlet weak var tenantUrlLabel: UILabel!
func populate(with tenant: Tenant) {
tenantNameLabel?.text = tenant.name
tenantUrlLabel?.text = tenant.url
tenantImage.image = UIImage(named: "breifcase")
}
}
根据您的要求在TableViewCell
中添加Activity指标
class TenantCell: UITableViewCell {
@IBOutlet weak var tenantImage: UIImageView!
@IBOutlet weak var tenantNameLabel: UILabel!
@IBOutlet weak var tenantUrlLabel: UILabel!
@IBOutlet weak var activityIndi: UIActivityIndicatorView!
func populate(with tenant: Tenant) {
tenantNameLabel?.text = tenant.name
tenantUrlLabel?.text = tenant.url
tenantImage.image = UIImage(named: "breifcase")
if tenant.isLoaderShow{
activityIndi.startAnimating()
}else{
activityIndi.stopAnimating()
}
向您的租户模型添加一个 Bool
变量 isLoaderShow
并根据 api 完成更改并重新加载 tableView
或重新加载 tableViewCell
首先将右箭头图像和 activity 指示器放在
tableviewCell
中。 (默认right_Arrow_image.isHidden = false and indicator.isHidden = true
)在
didSelectRowAt
方法中隐藏right_Arrow_image.isHidden = true
和indicator.isHidden = false
然后调用您的
webservice
并在收到响应后再次将其设置为第一步并移至下一个屏幕
请写在cellForRowAt
方法中:
cell.accessoryType = .disclosureIndicator
然后在didSelectRowAt
方法中请写
guard let cell : TenantCell = (tableView.cellForRow(at: indexPath) as! TenantCell) else {
return
}
cell.accessoryView = activityIndi
activityIndi. startAnimating()
收到回复后
activityIndi. stopAnimating()
可能对你有帮助。谢谢