Tag: cocoa touch

我在dynamic更新另一个控制器中的UILabel时遇到了麻烦。 它需要对应于在objective-c中选中的checkbox

在购物商店的应用程序工作。 过去的一周半,我一直在围绕着如何正确地做到这一点。 问题在于UILabel需要dynamic更新与选中checkbox对应的文本。 当点击应用button时,还需要知道是否应用select,或者如果客户决定改变主意而不点击应用,则返回先前的select。 这是我遇到的问题。 我把3个控制器称为图像1,图像2和图像3。 我的模特是一个独立的class级,当我们希望细化一系列服装项目结果时,我会传递来回的副本以保持用户的select。 例如,用户点击图像1中的细化button 他们被拿到形象2,他们决定他们想要改善结果 然后他们被拍到他们做select的图像3页 哪里出现问题: 简而言之,在图片3中,客户做出select并且完成点击,然后他们被接回到图像2,其中他们的select被显示在由select的细化选项(例如性别)下方的UILabel中的逗号分隔的string中。 如果他们的select正确,他们可以点击应用,完成并显示如图1所示。细化button中还会显示一个勾号,以使客户意识到精炼是有效的。 现在让我们说一个select已经在下面的图像,客户回到图像3来修改select。 假设他没有选中“微型网站”。 应该发生的是,当他回到图像2时,应该更新提炼选项下面的列表。 这工作正常,但我实际上更新当点击应用button时更新的属性。 所以如果客户决定他们不想再细化,而不是点击应用,而后退button,而不是他们的形象1,那么我需要在属性中更新原始selectstring。 事情是这样的,只要在图像3中进行select,就会更新这个属性。所以当客户返回到图像2时,因为我们没有选中“microsites”,只有“men”会显示在refine by选项下面的string中。 我已经尝试创build一个临时属性来保存以前的select,但事情只是真的让这一切来回麻烦。 更多信息: 我使用prepareForSegue方法和委托/协议在控制器之间来回传递模型类。 当图像3中的完成button被点击时,图像2就知道了。 这是我通过模型的地方。 图像1知道何时点击图像2中的应用button,并且这是我将模型传递过来的地方。 为了传递模型从图像1到2,然后2到3我使用prepareForSegue方法。 图片1: 图2: 图3: 你会怎么做? 我觉得我把所有的模型都转换成了自己的类,从而开创了一个好的开始。 这使事情变得简单了,但UILabel的另一个问题阻碍了我。 更新: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[[sender titleLabel] text] isEqualToString:@"Gender"]) { VAGRefineGenderViewController *vc = [segue destinationViewController]; [vc setDelegate:self]; [vc setRefineModel:[self refineModel]]; […]

如何检测文本字段中是否有文本而不是数字值?

我有一个文本字段,用户input一个数字,它被转换为一个整数。 键盘设置为十进制数字。 除了粘贴function仍然启用,所以用户可以粘贴文本。 如果用户input一个非数字值,我想把它设置成@“error”。 我不想禁用粘贴function,因为我仍然希望用户能够复制和粘贴自己的数值到我的应用程序。

UITableView图层上的内部阴影?

我需要添加一个内部阴影效果到我的UITableView。 我已经发现这个有用的文章添加到UIView图层的内部阴影:UIView图层上的内部阴影效果? 当我尝试在UITableView上使用这种技术时,问题就出现了,因为UITableView的单元显示在顶部,覆盖了阴影。 我玩过将UITableView作为子视图添加到UIView(带有内部阴影),没有任何效果。 我的UITableView是集中在UIViewController的视图与深灰色的背景。 给UITableView一个内在的阴影会给背景的效果,作为表视图的挡板。 我如何最好地实现我在UITableView寻找的效果?

用Core Data存储自定义对象

我试图存储一个NSMutableArray组成的VOs(NameVO)与核心数据,但得到下面的exception抛出: 'NSInvalidArgumentException', reason: '-[NameVO encodeWithCoder:]: unrecognized selector sent to instance 0x1096400a0' 我的NameVO只是一个简单的值对象,扩展NSObject并包含两个字段,一个string和一个NSMutableArray本身包含string。 它还包含一个比较function。 我试图准备这个存储为一个CD可转换的属性types('名称'是我的NameVO数组): NSData *tempNamesData = [NSKeyedArchiver archivedDataWithRootObject:names]; 我的问题是:我需要做什么使NameVO被NSKeyedArchiver接受成功转换为NSData? 我不希望NameVO扩展NSManagedObject,因为那样我就不能直接实例化和初始化它。

UIScrollView没有响应委托

我曾经有我的UIView工作正常与几个代表下面的一些。 现在我从IB更改UIView是一个UIScrollView (现在用作主视图)。 由于我已经更改为UIScrollView我的事件代表,如下面的那些不工作了。 比如键盘,还有我可以移动的元素,而不是静态的。 我把所有代表都分配给了我能想到的IB,并做了我所知道的大部分事情。 但我为什么没有触发事件的想法用尽… 如果我通过做cmd + z回到旧的UIView他们的工作。 任何人都可以指出我在正确的方向? – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { [self.view endEditing:TRUE]; } – (BOOL)textViewShouldBeginEditing:(UITextView *)textView { // register for keyboard notifications return YES; } 编辑 – 补充答案: @Wezly答案是完全有效的。 但是,如果有人不想子类的UIScrollView和只使用UITextFieldDelegate方法。 另一种做法是添加到viewDidLoad : 注意:你仍然无法访问许多东西,但是它的另一个解决方法 /// /// DelegateNotifications [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:self.view.window]; // register for keyboard notifications […]

如何使用iPhone SDK更改图像的形状?

我正在创build一个iPhone应用程序,我想让用户能够更改给定图像的形状,如下所示。 我怎样才能做到这一点? 请告诉我。

如何用iPhone SDK只拖动一个图像

我想创build一个需要两个图像的小应用程序,并且我只想使可拖动的图像。 经过研究,我发现这个解决scheme: -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[ event allTouches] anyObject]; image.alpha = 0.7; if([touch view] == image){ CGPoint location = [touch locationInView:self.view]; image.center = location; } 它的工作原理,但问题是,图像是从中心拖动,我不希望这一点。 所以我find另一个解决scheme – (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { // Retrieve the touch point CGPoint pt = [[touches anyObject] locationInView:self.view]; startLocation = pt; [[self view] bringSubviewToFront:self.view]; } […]

iOS开发:通过在Alert中按下button来争论?

我一直在寻找几个小时,还没有find任何答案,所以我会很感激你的帮助! 我正在devise一个应用程序,当按下一个警报button时,需要继续到不同的视图控制器。 我已经设置了警报,但只需要代码继续到一个新的观点。

将地址转换为经度和纬度

我想要执行以下操作 – 允许用户在iOS应用程序中input物理地址。 – 此地址转换为经度/纬度 – Django服务器代码检查以查看附近的位置。 我怎样才能最有效地做到这一点? 我应该将地址转换为ios应用程序中的经度和纬度,然后将坐标发送到django服务器代码,还是应该将地址发送到django服务器代码,然后将地址转换为经度和纬度? 任何帮助,将不胜感激!

内存pipe理与cocoa中的void *上下文有关

有许多基础类允许你提供一个指向void的指针,该指针稍后作为parameter passing给一个callback函数。 例如,对于NSKeyValueObserving的addObserver:forKeyPath:options:context:。 由于指向void的指针可能无法扩展NSObject,因此接受这种参数的函数不能期望保留它。 因此,您的代码必须看起来类似于以下内容: – (void)sharedInit { MyObject *myObject = [[MyObject alloc] init]; [x addObserver:y forKeyPath:@"z" options:0 context:myObject]; // cannot (auto)release myObject here } – (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { MyObject *myObject = (MyObject *)context; [myObject release]; // myObject is released here } 这是有道理的,尽pipe它似乎违反了Cocoa / Objective-C对象所有权的每一个原则。 另外,如果您忘记在这种情况下手动pipe理内存,则经常(虽然不总是)导致EXC_BAD_ACCESS崩溃。 此外,Xcode分析仪抱怨。 我问这个问题的原因是因为我正在编写一个networking连接库,在其公共API中使用相同types的上下文指针。 然而,在我自己的代码中find了一些与手动内存pipe理相关的内存pipe理错误之后,我相信必须有更好的方法。 一个解决scheme是将我的API的上下文参数的types改为(id […]