我以UIButton编程方式添加,我想按下它时调用一个方法,我不知道如何设计这样的模式:
我应该在哪里放置事件处理程序或操作方法?在视图控制器或视图本身.
如果我将该方法放在视图控制器中,我该如何操作SubViews方法中的View?我应该将所有SubViews(UIButton等)暴露给控制器,方法是将它们作为属性放在视图的头文件中吗?实际上这个问题应该以这种方式提出:我如何通过Interface Builder中的SubViews一个IBOutlet属性与一个属性相关联的代码来实现...
我在其实现文件中为类定义了一个属性.
@property (nonatomic, strong) IBOutlet UIView *headerView;
Run Code Online (Sandbox Code Playgroud)
然后我重写其getter函数,-(UIView*)headerView(){...}从主bundle获取一些资源.
在下面的代码中,我需要在加载资源后将属性"headerView"设置为其他视图的子视图.这是代码无法加载资源.
[self.tableView setTableHeaderView:_headerView];
Run Code Online (Sandbox Code Playgroud)
不调用Getter函数.我将属性变量更改为self.headerView:
[self.tableView setTableHeaderView:self.headerView];
Run Code Online (Sandbox Code Playgroud)
它现在有效......
self.xxx和_xxx之间有什么区别吗?我认为它们与不同方面的财产相同.
与Java和C++相比,Swift相当新......我只是想知道为什么Swift在编译代码时不会删除空格如下:
if x!=10 {...} //I have to add space before and after != to get rid of issue.
Run Code Online (Sandbox Code Playgroud)
如增量++和{循环块之间没有空格那么增量就像增量++一样也不能作为增量.
与在Java或C++中一样,space和Tab在编译方面没有意义.Swift是否像Python一样考虑空格或制表符作为代码的一部分?