我正在尝试将自定义页脚设置为我的表格视图.我在一个nib文件上创建了页脚并创建了一个受控制的页脚.
class LoginTableFooter: UITableViewHeaderFooterView
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad()我写这个代码
let footerNib = UINib(nibName: "LoginTableFooter", bundle: nil)
tableView.register(footerNib, forHeaderFooterViewReuseIdentifier: "LoginTableFooter")
Run Code Online (Sandbox Code Playgroud)
然后我实施了 viewForFooterInSection
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let cell = self.tableView.dequeueReusableHeaderFooterView(withIdentifier: "LoginTableFooter")
let header = cell as! LoginTableFooter
return cell
}
Run Code Online (Sandbox Code Playgroud)
viewForFooterInSection从未被称为.我也试图实现,viewForHeaderInSection但它也没有被调用.你知道出了什么问题吗?我的表视图中只有一个部分; 是否可以/更好地直接设置页脚viewDidLoad?
我使用此代码将属性字符串添加到标签:
let attrString = NSMutableAttributedString(string: text)
// add some attributes
myLabel.attributedText = attrString
Run Code Online (Sandbox Code Playgroud)
现在是否可以仅更改属性字符串myLabel的文本并保留属性?
我请求一个带有此代码的网页
URLSession.shared.dataTask(with: NSURL(string: url)! as URL, completionHandler: { (data, response, error) -> Void in
if error == nil && data != nil {
// No error
}else{
// Error
if let httpResponse = response as? HTTPURLResponse {
print(httpResponse.statusCode)
}
}
Run Code Online (Sandbox Code Playgroud)
我试图通过将响应强制转换为请求页面时获取错误代码,HTTPURLResponse但强制转换不起作用并且不执行打印。你知道我怎样才能得到代码吗?
我正在尝试使用此代码从文件加载 json 字符串。
\n\nif let filepath = Bundle.main.path(forResource: "data", ofType: "json") {\n do {\n let contents = try String(contentsOfFile: filepath)\n print(contents)\n } catch {\n // contents could not be loaded\n print("could not be loaded")\n }\n\n} else {\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但我收到“无法加载”消息。代码有错吗?或者我应该把文件放在一个特定的文件夹中?目前我将它放在一个名为 models 的文件夹中。
\n\n编辑:我检查了错误内容,json文件的位置没有问题,当我尝试将其转换为字符串时出现问题。它告诉我编码不同......
\n\n\n\n错误域=NSCocoaErrorDomain代码=264“Die Datei \xe2\x80\x9edata.json\xe2\x80\x9c konnte\n nicht ge\xc3\xb6ffnet werden,da die Textcodierung des Inhalts nicht bestimmt\n werden kann。”
\n
我有一个有这种结构的字典
var profiles: Dictionary<String, Bool> = ["open": true, "encrypted": false, "sound":true, "picture":false]
Run Code Online (Sandbox Code Playgroud)
我想创建一个将所有字典值重置为true的函数.有没有一个简短的方法可以做到这一点,还是我应该循环并逐个更改值?
我正在尝试用 Swift 中的参数初始化一个类。我希望能够将数组传递给类。类似的东西let test = MyTestClass(data)。
代码:
init(data: [CGFloat]){
super.init(nibName: "Test", bundle: nil)
self.data = data
}
required init?(coder decoder: NSCoder) {
super.init(nibName: "Test", bundle: nil)
}
Run Code Online (Sandbox Code Playgroud)
错误:
我正在使用此代码创建一个新的颜色数组.一切都很好.
但是我不想强制解包,$0.color!因为有时候应用程序崩溃时值为零.
我如何将其作为可选项?如果我只是删除!我收到一个错误,要求我打开它.
let newArray = oldDict.map{ UIColor(hexString: $0.color!)}
Run Code Online (Sandbox Code Playgroud) 我声明了一个名为var progressBar的UIView变量:UIView?
并使用此功能显示或隐藏视图
func showProgressBar(showBar: Bool){
if showBar{
let viewHeight = view.frame.size.height
progressBar = Bundle.main.loadNibNamed("progressBar", owner: nil, options: nil)?.first as? UIView
progressBar?.frame = CGRect(x: 0, y: viewHeight - 80 , width: self.view.frame.width, height: 80)
if let bar = progressBar{
self.view.addSubview(bar)
}
}else{
DispatchQueue.main.async() {
self.progressBar?.removeFromSuperview()
}
}
Run Code Online (Sandbox Code Playgroud)
有时当我在视图之间导航时,我无法隐藏进度条,即使self.progressBar?.removeFromSuperview()执行时也是如此.在我看来,如果视图已经丢失了对旧进度条的引用...你对这个问题以及如何解决这个问题有所了解吗?
我已经定义了一个带有插座的基类,并将插座附加到 nib 文件中的视图
class BaseController: UIViewController {
@IBOutlet weak var myView : UIView!
and then created a subclass
class SubViewController: BaseController {
override func viewDidLoad() {
myView.backgroundColor = UIColor.red //The app crashes here
Run Code Online (Sandbox Code Playgroud)
当我调用BaseController()它时会出现视图,但是当我调用SubViewController()应用程序时会崩溃,因为myView它为零。nib 文件上的文件所有者是 BaseController。