我正在尝试制作一个游戏,如果你点击一个小的50X53图像显示你点击它的地方,我开始使50x53图像的东西一个按钮,当你触摸按钮按钮的背景变为红色(到模拟在那里添加了一个图像)所以这里我在viewController上有大约48个按钮(6X8),每当我按下其中一个按钮时,背景变为红色,确定简单,但现在我想做的是拥有UI完全空白(您看不到任何按钮)然后当您按下给定区域时,会在您按下的那个小空间中弹出一个图像.我想而不是做
-(IBAction)imagePressed
{
sender.background=[UIColor redColor];
}
-(IBAction)imagePressedAgain
{
sender.background=[UIColor whiteColor];
}
Run Code Online (Sandbox Code Playgroud)
我打算做点什么
-(IBAction)imagePressed
{
sender.image=@"whateverImage.png";
//I know this isn't the right syntax to change a buttons image (and i don't even know if i can change a buttons image) but anyways i was going to try to here
}
-(IBAction)imagePressedAgain
{
sender.image=@"imageThatIsJustAWhiteBackground";
}
Run Code Online (Sandbox Code Playgroud)
所以我试着这样做,然后想到自己,嗯,也许我不应该这样做,我应该使用一堆小UIImageViews并将它们全部放在interfaceBuilder上?喜欢而不是在屏幕上有48个按钮,我会有48个UIImageViews?然后我想我会为每个添加一个轻拍手势识别器?或者我应该坚持我的旧计划并更改按钮图像?
(o,顺便说一句,我不能让图像与用户在屏幕上触摸手指的位置完全成比例,我必须将它放在有组织的网格中,所以我必须有48个.)
有人告诉我,我可以NSPredicate用来复制这种方法的结果
- (void) clearArrayOut
{
bool goAgain = false;
for (int j=0; j<[array count]; j++)
{
if ([[array objectAtIndex:j] someMethod] == NO)
{
[array removeObjectAtIndex:j];
goAgain = true;
break;
}
}
if (goAgain) [self clearArrayOut];
}
Run Code Online (Sandbox Code Playgroud)
如何NSPredicate根据自定义类调用的某些方法的结果来过滤数组?
我正在使用Core Data的类别.我读过的一些教程和讲座我听过说类别通常被认为是"坏"的做法.但是因为Objective-C是如此动态,所以在其他地方定义方法似乎是完全可以的,特别是因为只能使用类的公共属性.使用类别时我应该注意哪些陷阱?或者是否有一些理由认为类别实际上是不好的做法?我将它们与Core Data一起使用的原因是每次重新生成子类时我都没有重写我的附加方法.
在我的应用程序中,我有一个滚动视图,当我按下一个按钮时,它会被隐藏,当我再次按下它时出现.
我用scrollview.hidden = YES(或不)来做.
但我想用动画来做.例如,它可能会通过移动从屏幕底部消失,并以相同的方式显示.我怎样才能做到这一点?
编辑:
[UIView beginAnimations:@"myAnimation" context:nil];
CGRect Frame = bottomScroller.frame;
if(Frame.origin.y == 380){
Frame.origin.y = 460;
}else{
Frame.origin.y = 380;
}
bottomScroller.frame = Frame;
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题......
objective-c ×4
animation ×1
ios ×1
nspredicate ×1
scrollview ×1
uibutton ×1
uiimage ×1
uikit ×1
xcode ×1