Tag: objective c

如何更改UITextField上清除button的色调

我在我的UITextfield上有一个自动生成的清除button,使用默认的蓝色色调。 我无法将浅色改成白色。 我试图修改故事板和代码没有成功,我不想使用自定义图像。 如何在不使用自定义图像的情况下更改默认的清除button色调颜色?

@class在Objective-C中做什么?

任何人都可以向我解释一下@class声明做了什么目标以及我们应该如何使用这个声明。

对NSTimer目标的弱引用防止保留周期

我正在使用这样的NSTimer : timer = [NSTimer scheduledTimerWithTimeInterval:30.0f target:self selector:@selector(tick) userInfo:nil repeats:YES]; 当然, NSTimer保留了创build保留周期的目标。 此外, self不是一个UIViewController,所以我没有像viewDidUnload任何东西,我可以使计时器无效打破周期。 所以我想知道如果我可以使用一个弱引用: __weak id weakSelf = self; timer = [NSTimer scheduledTimerWithTimeInterval:30.0f target:weakSelf selector:@selector(tick) userInfo:nil repeats:YES]; 我听说计时器必须无效(我想从运行循环中释放它)。 但我们可以在我们的dealloc中这样做,对吧? – (void) dealloc { [timer invalidate]; } 这是一个可行的select? 我已经看到很多人处理这个问题的方法,但我没有看到这个。

如何发送POST和GET请求?

我想发送我的JSON到一个URL( POST和GET )。 NSMutableDictionary *JSONDict = [[NSMutableDictionary alloc] init]; [JSONDict setValue:"myValue" forKey:"myKey"]; NSData *JSONData = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:nil]; 我目前的请求代码不起作用。 NSMutableURLRequest *requestData = [[NSMutableURLRequest alloc] init]; [requestData setURL:[NSURL URLWithString:@"http://fake.url/"];]; [requestData setHTTPMethod:@"POST"]; [requestData setValue:postLength forHTTPHeaderField:@"Content-Length"]; [requestData setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [requestData setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [requestData setHTTPBody:postData]; 使用ASIHTTPRequest 不是一个负责任的答案。

删除影响UIView的所有约束

我有一个UIView通过几个约束放置在屏幕上。 一些约束由superview拥有,其他约束由其他祖先拥有(例如,也许是UIViewController的视图属性)。 我想删除所有这些旧的约束,并使用新的约束将其放置在新的地方。 我怎样才能做到这一点,而不必为每个约束创build一个IBOutlet,并且必须记住哪个视图拥有所述约束? 详细说,天真的方法是为每个约束创build一堆IBOutlets,然后包含调用代码,如: [viewA removeConstraint:self.myViewsLeftConstraint]; [viewB removeConstraint:self.myViewsTopConstraint]; [viewB removeConstraint:self.myViewsBottomConstraint]; [self.view removeConstraint:self.myViewsRightConstraint]; 这个代码的问题是即使在最简单的情况下,我也需要创build2个IBOutlets。 对于复杂的布局,可以轻松达到4或8个IBOutlet。 此外,我需要确保我的呼叫,以消除约束正在呼吁正确的看法。 例如,假设myViewsLeftConstraint属于viewA 。 如果我不小心调用了[self.view removeConstraint:self.myViewsLeftConstraint] ,什么都不会发生。 注意: constraintAffectingLayoutForAxis方法看起来很有前景,但是仅用于debugging目的。 更新:我收到的许多答案处理self.constraints , self.superview.constraints ,或这些的一些变体。 这些解决scheme将不起作用,因为这些方法只返回视图所拥有的约束,而不是影响视图的约束。 为了澄清这些解决scheme的问题,请考虑这个视图层次结构: 祖父 父亲 我 儿子 女儿 哥哥 叔叔 现在想象一下,我们创build下面的约束条件,并且总是将它们附加到最近的共同祖先: C0:我:和儿子一样(拥有我) C1:Me:宽度= 100(由Me拥有) C2:我:和兄弟一样高(父亲) C3:我:和叔叔一样(爷爷拥有) C4:我:和爷爷一样(祖父所有) C5:兄弟:跟爸爸一样(父亲) C6:叔叔:和祖父(爷爷)一样, C7:儿子:和女儿一样(由我拥有) 现在想象一下,我们想删除所有影响Me约束。 任何适当的解决scheme应该删除[C0,C1,C2,C3,C4]而不是别的。 如果我使用self.constraints (self是me),我会得到[C0,C1,C7] ,因为这些是我拥有的唯一约束。 显然这是不够的,因为它是缺less[C2,C3,C4] 。 此外,它不必要地删除C7 。 […]

UIRefreshControl iOS 6 xcode

有没有人有一个如何实现新的UIRefreshControl到Xcode的简短的例子。 我有一个显示推文的UITableViewController ,希望能够下拉和刷新。

更改后退导航栏button的字体

我希望能够设置我的应用程序导航栏后退button的字体,而不做任何太疯狂,不失去任何其他devise特点的button(即我想保持箭头)。 现在我在viewDidAppear:使用这个viewDidAppear:设置正常的条形button项目的字体。 for (NSObject *view in self.navigationController.navigationBar.subviews) { if ([view isKindOfClass:[UIButton class]]) { [((UIButton*)view).titleLabel setFont:[UIFont fontWithName:@"Gill Sans" size:14.0]]; } } 但是,不pipe这个代码应用于哪个UIViewController (root,current等),后退button都不会改变。

二维数组使用NSMutableArray

我需要在Objective-C中创build一个可变的二维数组。 例如,我有: NSMutableArray *sections; NSMutableArray *rows; sections每个项目由一个数组rows 。 rows是一个包含对象的数组。 我想要做这样的事情: [ sections[i] addObject: objectToAdd]; //I want to add a new row 为了有这样的事情:第0节,行:obj1,obj2,obj3第1节,行:obj4,obj5,obj6,obj 7 … Objective-C有没有办法做到这一点?

检测平移手势结束

我有一个观点,我应用UIPanGestureRecogniser到这个视图: UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAnim:)]; [sliderView addGestureRecognizer:panGesture]; [panGesture release]; 我可以检测和处理手势就好了。 不过,一旦手势结束,我希望启动另一种方法。 我知道有两种方法可以进行这种检测。 然而,触摸已经touchesEnded并touchesCancelled ,我发现只要触摸变成一个手势,触摸touchesCancelled就会被调用,即我将手指移动到足以保证一个手势调用,并很less接触到已touchesEnded ,如果有的话,被调用。 我希望能够平移左/右,然后启动手势结尾的另一个函数调用。 我该怎么做呢?

string值总是在目标C中显示为零

我已经升级到Xcode 5.0。 而当我在debugging模式下运行一个应用程序,并尝试在控制台中打印NSString值,它给了我下面的错误。 有任何想法吗? error: warning: couldn't get cmd pointer (substituting NULL): Couldn't load '_cmd' because its value couldn't be evaluated Couldn't materialize struct: the variable 'stringValue' has no location, it may have been optimized out Errored out in Execute, couldn't PrepareToExecuteJITExpression 这里是代码: NSString *stringValue = [[self.responseArray objectAtIndex:i] valueForKey:@"merchant_name"];