gpt4 book ai didi

ios - 在 Swift 中重新加载/更新 View

转载 作者:IT王子 更新时间:2023-10-29 05:17:29 24 4
gpt4 key购买 nike

我正忙于制作一个带有帐户页面的应用程序。我希望用户可以通过该页面登录,一旦他们登录成功,页面就会重新加载以显示他们的帐户信息,而不是显示他们必须登录才能使用该页面的标准消息。

但是,当我从登录页面返回到帐户页面时, View 并没有真正更新。因此,我想知道在按下某些按钮后我是否无法重新加载 View ,这些按钮可以再次检查用户是否登录并进行相应处理。

最佳答案

如果你想触发布局或只是绘图有 setNeedsLayoutsetNeedsDisplay

没有重新加载自定义数据的内置方法(在 iOS 上)


所以做一个重新加载和内部重新加载——调用 setNeedsDisplay

import UIKit

protocol MyViewDelegate {
func viewString() -> String;
}

class MyView : UIView {
var myViewDelegate : MyViewDelegate?
private var str : String?

func reloadData() {
if myViewDelegate != nil {
str = myViewDelegate!.viewString()
}
self.setNeedsDisplay()
}

override func drawRect(rect: CGRect) {
UIColor.whiteColor().setFill()
UIRectFill(self.bounds)
if str != nil {
let ns = str! as NSString
ns.drawInRect(self.bounds, withAttributes: [NSForegroundColorAttributeName: UIColor.blueColor(), NSFontAttributeName: UIFont.systemFontOfSize(10)])
}
}
}


class ViewController: UIViewController, MyViewDelegate {
func viewString() -> String {
return "blabla"
}

var v : MyView!

override func viewDidLoad() {
super.viewDidLoad()

v = MyView(frame: self.view.bounds)
self.view.addSubview(v)

v.myViewDelegate = self;
}

override func viewWillAppear(animated: Bool) {
v.reloadData()
}
}

关于ios - 在 Swift 中重新加载/更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com