所以我现在在项目中有3个对象:
_vLabel.hidden = YES;
_wLabel.hidden = YES;
_nextButton.hidden = YES;
正如你所看到的,我为所有人做.hidden
事。有没有办法创建变量或其他东西,我只需要应用它而不是写整行,如:
_vLabel.hide;
提前致谢!
答案 0 :(得分:1)
这样做似乎很愚蠢,因为你应该遵循任何其他iOS程序员期望和理解的惯例,但是你可以这样做:
UIView+MyCategory.h:
@interface UIView (MyCategory)
-(void) hide;
@end
UIView+MyCategory.m:
@implementation UIView (MyCategory)
-(void) hide {
[self setHidden:YES];
}
@end
usage:
[myView hide];
答案 1 :(得分:0)
我发现问题不清楚。什么是"快捷方式"在这种情况下?你怎么能得到更短的"更短的"比这个:
_vLabel.hidden = YES;
_wLabel.hidden = YES;
_nextButton.hidden = YES;
对我而言,"长度"在这里 - 需要缩短的事情 - 是你做了三次而不是一次。如果这些对象是您通常隐藏并一起显示的对象,那么让一个方法隐藏并显示所有将是一件好事。 :
- (void) toggle {
_vLabel.hidden = !_vLabel.hidden;
_wLabel.hidden = !_wLabel.hidden;
_nextButton.hidden = !_nextButton.hidden;
}
它的代码一样多,但是一旦你编写了代码,那么每当你想要全部显示它们或隐藏它们时,你只需说:
self.toggle;
这实际上是一个捷径:
[self toggle];
所以你在这里做的就是写一个方法来改变语言,如果避免重复,这是一个非常合理的事情。
答案 2 :(得分:0)
嗯,如果您唯一的问题是写label.hidden = YES;
的时间太长,那么为什么不使用代码片段呢?这样你就可以用较少的写作来保持命名约定。
您甚至可以使用Xcode创建这些代码段。只需选择文本并将其从边缘拖动(这部分可能非常棘手)到片段区域。
就个人而言,我会使用类似TextExpander
或aText
或其他任何你喜欢的东西。这些应用程序通常比Xcode更快,更易于使用。
只需在.hidden = YES;
的相应代码段中创建,然后将其分配给.hide
等快捷方式
所以,现在每当你想要隐藏某些东西时,你只需要写myLabel.hide
TextExpander将其扩展为
myLabel.hidden = YES;
要再次显示内容,您可以将.show
分配给.hidden = NO;