iOS 通过宏重新设计 UITableView

标签 ios uitableview custom-cell

我通过定义宏 #define DRAW_SET 1

自定义绘制我的 TableView 单元格

在应用程序整个生命周期的某个地方,我想更改单元格的外观,因此我实现了一个 IBAction 方法,然后使用 #undef DRAW_SET 宏并将其定义为 2 #define DRAW_SET 2

我遇到的问题是宏没有被取消定义和/或重新定义。这可能是由于公共(public)/私有(private)电话造成的吗?

谢谢克林顿

最佳答案

宏是编译器指令。编译后,每个宏都被替换为相应的值/语句。 #undef 允许您取消定义宏,但同样,作为编译逻辑的一部分,而不是运行时逻辑。

通常,宏用于在开发周期中静态添加调试代码,然后在部署应用时将其删除(以减小大小)。例如:

#ifdef DEBUG

// regular logic you don't want in your final app

#endif

我使用宏的另一个地方是针对不同的操作系统:

#ifdef WINDOWS

// something windows specific

#endif

#ifdef AIX

// something AIX specific

#endif

这些宏可以在不同的地方定义——你的编译器会免费给你很多,你可以在构建过程中设置它们。

但这里的关键是,它们在运行时不可更改。

您可能想要做的是在某个地方定义一个变量,也许在您的应用程序委托(delegate)上作为属性,这很容易从您应用程序的任何地方访问:

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

然后在您的代码中查看已设置的变量:

if (appDelegate.myFlag == 1) {
    // render my cell in one way
} else {
    // render my cell in another way
}

关于iOS 通过宏重新设计 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10123096/

相关文章:

ios - 转换为使用 iOS 8 Popover Segues 时 UISplitViewController 崩溃

iphone - 如何停止UITableView标题的滚动

ios - 只有 imageView 的自适应表格 View 单元格

ios - Swift 3 - 重用具有多个自定义单元格的单元格时出现问题

ios - 如何从 CustomCell 重置 tableview 中的所有开关

ios - DidReceiveNotificationRequest 未被调用

ios - segue 的自定义 setter 看不到我在 iPhone Master/Detail Storyboard 中发送给它的对象

ios - 在 tableview 中每 5 个单元格后添加一个广告替换内容

IOS 8 自动高度单元工作但当我向上滚动时它跳

ios - 切换TabBar Item时如何获取上一个ViewController的名称