Questions tagged «cocoa-touch»

驱动iOS应用程序的Cocoa Touch框架共享在Mac上发现的许多成熟模式,但它们的构建特别着重于基于触摸的界面和优化。




30
消除键盘的简单方法?
我有很多控件散布在表中的许多表格单元格中,我想知道是否有一种更简便的方法来关闭键盘,而不必遍历所有控件并将它们全部放弃为第一响应者。我想问题是..我怎样才能使当前的第一响应键盘?


28
如何将多行文本添加到UIButton?
我有以下代码... UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds]; buttonLabel.text = @"Long text string"; [targetButton addSubview:buttonLabel]; [targetButton bringSubviewToFront:buttonLabel]; ...这个想法是我可以为按钮设置多行文本,但是该文本始终被UIButton的backgroundImage遮盖。显示该按钮的子视图的日志记录调用表明已添加UILabel,但看不到文本本身。这是UIButton中的错误还是我做错了什么?

7
按下时会两次调用UILongPressGestureRecognizer
我正在检测用户是否已按下2秒钟: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; 这是我处理长按的方式: -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } 当我按下2秒钟以上时,文本“ double oo”被打印两次。为什么是这样?我该如何解决?


15
UITableView didSelectRowAtIndexPath:第一次点击时未调用
我有一个问题 UITableView's didSelectRowAtIndexPath。 我的表已设置好,因此当我选择行时,它将初始化一个新的视图控制器并将其推送。 我第一次点击表中的任何行时,不会调用该方法。一旦我选择了另一行,它就会开始正常工作。 我已通过在上设置断点来验证这一点didSelectRowAtIndexPath。当添加一个NSLog方法中我看到当我选择最后推送新视图控制器的第二行时,我看到两个日志语句同时出现在控制台中。 有什么建议么?

16
如何在UIView下绘制阴影?
我正在尝试UIView在Cocoa Touch 的底部边缘下方绘制阴影。我知道我应该CGContextSetShadow()用来绘制阴影,但是Quartz 2D编程指南有点模糊: 保存图形状态。 调用该函数CGContextSetShadow,并传递适当的值。 执行要向其应用阴影的所有图形。 恢复图形状态 我在UIView子类中尝试了以下方法: - (void)drawRect:(CGRect)rect { CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextSaveGState(currentContext); CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5); CGContextRestoreGState(currentContext); [super drawRect: rect]; } ..但这对我不起作用,我对(a)接下来要去哪里和(b)是否需要对我UIView进行这项工作感到有些困惑?

30
编写Objective-C和Cocoa时使用的最佳实践是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我知道HIG(非常方便!),但是在编写Objective-C时,尤其是在使用Cocoa(或CocoaTouch)时,会使用哪些编程实践。

17
如何按比例缩放UIImageView?
我有一个UIImageView,目的是通过给它一个高度或宽度来按比例缩小它。 UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; //Add image view [self.view addSubview:imageView]; //set contentMode to scale aspect to fit imageView.contentMode = UIViewContentModeScaleAspectFit; //change width of frame CGRect frame = imageView.frame; frame.size.width = 100; imageView.frame = frame; 图像确实已调整大小,但位置不在左上方。缩放图像/ imageView的最佳方法是什么?如何校正位置?

28
在不使用私有API的情况下获取当前的第一响应者
我在一周前提交了我的应用程序,今天收到了可怕的拒绝电子邮件。它告诉我我的应用无法接受,因为我使用的是非公开API;具体说, 应用程序中包含的非公共API是firstResponder。 现在,有问题的API调用实际上是我在SO上找到的解决方案: UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)]; 如何在屏幕上获取当前的第一响应者?我正在寻找一种不会让我的应用程序被拒绝的方法。

21
隐藏视图时如何使用自动布局来移动其他视图?
我已经在IB中设计了自定义单元,将其子类化,然后将插座连接到我的自定义类。我在单元格内容中有三个子视图:UIView(cdView)和两个标签(titleLabel和emailLabel)。根据每行可用的数据,有时我想在单元格中显示UIView和两个标签,有时只显示两个标签。我想做的是,如果我将UIView属性设置为hidden,或者将其从超级视图中删除,则以这种方式设置约束,这两个标签将向左移动。我尝试将UIView领先约束设置为10像素的Superview(单元格内容),并将UILabels领先约束10像素的像素设置为下一个视图(UIView)。稍后在我的代码中 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(IndexPath *)indexPath { ... Record *record = [self.records objectAtIndex:indexPath.row]; if ([record.imageURL is equalToString:@""]) { cell.cdView.hidden = YES; } 我隐藏了cell.cdView,我希望标签向左移动,但是它们在Cell中的位置相同。我试图从超级视图中删除cell.cdView,但它也不起作用。我已附上图片以阐明我的意思。 我知道如何以编程方式执行此操作,因此我没有寻找该解决方案。我想要在IB中设置约束,并且我希望如果其他视图被删除或隐藏,我的子视图将动态移动。可以在IB中使用自动布局执行此操作吗? .....

20
上传后,iOS UIImagePickerController结果图像方向
我正在iOS 3.1.3 iPhone上测试我的iPhone应用程序。我正在使用/选择/捕获图像UIImagePickerController: UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; [imagePicker setDelegate:self]; [self.navigationController presentModalViewController:imagePicker animated:YES]; [imagePicker release]; - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { self.image = [info objectForKey:UIImagePickerControllerOriginalImage]; imageView.image = self.image; [self.navigationController dismissModalViewControllerAnimated:YES]; submitButton.enabled = YES; } 然后,我会使用ASI类将其发送到我的Web服务器: ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://example.com/myscript.php"]]; [request setDelegate:self]; [request setStringEncoding:NSUTF8StringEncoding]; [request setShouldContinueWhenAppEntersBackground:YES]; …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.