我尝试从我的助手类访问函数“ addNavBar()”,但是当我运行模拟器时,HomeViewController上没有显示视图。
雨燕4
HomeViewController.swift
class HomeController: UIViewController {
let NavBar = NavigationBarHelper()
override func viewDidLoad() {
super.viewDidLoad()
NavBar.addNavBar()
}
}
NavigationBarHelper.swift
class NavigationBarHelper: UIView {
func addNavBar() {
let rect = CGRect(x: 10, y: 70, width: 250, height: 100)
let navBarView = UIView(frame: rect)
navBarView.backgroundColor = UIColor.blue
self.addSubview(navBarView)
}
}
答案 0 :(得分:1)
self
与视图控制器中的视图不同。将VC的视图作为参数传递。无需使NavigationBarHelper成为UIView的子类(实际上,它也可以是结构)。
class NavigationBarHelper {
func addNavBar(to view: UIView) {
let rect = CGRect(x: 10, y: 70, width: 250, height: 100)
let navBarView = UIView(frame: rect)
navBarView.backgroundColor = UIColor.blue
view.addSubview(navBarView)
}
}
请也遵守命名约定
class HomeController: UIViewController {
let navBarHelper = NavigationBarHelper()
override func viewDidLoad() {
super.viewDidLoad()
navBarHelper.addNavBar(to: self.view)
}
答案 1 :(得分:0)
代替每次使用都创建对象
let NavBar = NavigationBarHelper()
我认为像这样static
使它更健壮
class NavigationBarHelper: UIView {
static func addNavBar(view:UIView) {
let rect = CGRect(x: 10, y: 70, width: 250, height: 100)
let navBarView = UIView(frame: rect)
navBarView.backgroundColor = UIColor.blue
view.addSubview(navBarView)
}
}
并直接调用它而无需创建对象
NavigationBarHelper.addNavBar(view: self.view)
答案 2 :(得分:-1)
一个更好的选择是/**
* Returns an iterator over elements of type {@code T}.
*
* @return an Iterator.
*/
,因此您不必为此创建特殊类
h2:hover {
border: solid 5px #FFF;
padding: 10px;
margin: 25px;
background: blue;
}
在您<a href="">...</a>
中,您可以简单地编写此代码而无需创建帮助对象。
var titles = [
"<a href=\"...\">Title 1</a>",
"<a href=\"...\">Title 2</a>"
];
let html = $.parseHTML(titles[0]);
$("#log").append(html);