Tag: uikit

NSFetchedResultsController在被pipe理对象被修改时通知它的代理删除更改,并且从不通知插入或更新

我有一个UITableViewController ,这是NSFetchedResultsController的委托。 我的NSFetchedResultsControllerDelegate函数按照Apple文档中的 “Typical Use”进行设置,并将表视图控制器作为获取的结果控制器的委托属性。 我也有一些视图控制器,这些控制器显示在可以修改被pipe理对象的表格视图之上。 这些修改是在相同的托pipe对象上下文中完成的。 在我的应用程序中只有一个托pipe对象上下文构造,并且它是全局访问的。 (我已经把一些print语句放在我的对象语境结构中,以确保我不会在别处意外重新构build它)。 当我修改其中一个托pipe对象时,委托函数controller:didChangeObject被调用,但.Delete 始终是 .Delete 。 当我创build一个托pipe对象时,委托函数根本不会触发。 但是,当我手动调用performFetch()和tableView.reloadData() ,单元格会恢复到正确的状态:删除的行返回,创build任何未插入的行。 结果是删除对象按预期工作(单元格被删除),但更新到对象会导致其单元格被删除,并且对象创build不会触发单元格插入。 我试图创build一个这种行为的简单演示,但是当我从一个空白的应用程序重新创build的情况下,我没有看到这种行为。 所以在我的应用程序中的东西是造成这种奇怪的行为,但我不知道什么。 有任何想法吗? 额外信息: 谓词和sorting描述符的实际构造是通过几个不同的类来完成的,但是通过print(resultsController.fetchRequest.predicate)和print(resultsController.fetchRequest.sortDescriptors)如下: 可选(readState ==“2”或readState ==“1”) 可选([(readState,ascending,compare :),(title,ascending,compare :)]) 我已经把一个打印语句放在我的controller:didChangeObject:方法中,而且我可以看到这只用type.rawValue = 2 (即.Delete ) .Delete ,只有当我修改对象时,而不是当我创build它们。

将UIPicker添加到文本字段

我有一个表格视图,我必须在一些单元格中显示文本字段。 当用户单击文本字段时,我希望select器视图以0到99之间的整数值显示。一旦用户在选取器视图中select了该项目,则需要在该特定文本字段上显示相同的内容。 任何帮助将真诚感激。

swiftinheritance的协议方法覆盖

我希望这会工作: protocol Foo : UITableViewDelegate{ } extension Foo{ func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { print("ROW:\(indexPath.row)") } } class MyVC : UITableViewController, Foo{ //… } 没有运气,但方法并没有被调用。 我错过了什么,或者这是真的不可能? 此外,没有编译器警告/错误,该方法只是没有被调用,有些人可能会考虑一个错误。

如何以编程方式更改uibutton的backgroundcolor

我想将button的背景颜色改为黑色。 我已经尝试了这么多的代码。 但没有正常工作。 我该怎么做?

UIPinchGestureRecognizer仅用于捏出

我试图创build一个UIPinchGestureRecognizer失败,如果用户捏(移动手指分开)。 我知道有一个非常简单的方法来做到这一点,只是采取行动方法的识别器的规模,如果它大于1,设置一个标志,并忽略所有未来的呼叫。 然而,这不适用于我,我有其他的手势识别器,需要这个捏认识失败,所以我需要它正确地失败时,用户捏在错误的方向。 我试图inheritanceUIPinchGestureRecognizer: @implementation BHDetailPinchGestureRecogniser { CGFloat initialDistance; } #pragma mark – Object Lifecycle Methods – (id)initWithTarget:(id)target action:(SEL)action { self = [super initWithTarget:target action:action]; if (self) { initialDistance = NSNotFound; } return self; } #pragma mark – UIGestureRecogniser Methods – (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)recogniser { if ([recogniser isKindOfClass:[UIPinchGestureRecognizer class]]) { return [self.delegate gestureRecognizerShouldBegin:self]; } else return […]

从后台恢复呈现ModalViewController,避免下面的内容闪烁

在我的应用程序中,我将在启动时在根视图控制器之上呈现一个模式视图控制器,并在从后台恢复时显示加载/汇总屏幕。 几秒钟后,这被解散,以显示根视图控制器。 模式通过applicationWillEnterForeground程序委托上的applicationWillEnterForeground方法呈现。 这一切都工作正常,但从后台恢复时,再次呈现加载模式之前,看到较低的根视图控制器的闪光是相当普遍的。 我正在努力find一个明显的方式来做这个演示文稿,以确保它安全地出现,而没有看到底下的视图。 我错过了一些非常明显的东西吗?

ios在对象处理的同时识别手势

与UIKit对象进行交互时是否可以同时识别手势和触摸? 例如,当用户滚动滑块或选取器视图时,我是否也可以处理滑动手势?

textField shouldChangeCharactersInRange在用户操作之后执行一步

我有一个用户input电子邮件地址的textField 。 我想在input文本成为有效的电子邮件地址时激活提交button。 validation工作,但shouldChangeCharactersInRange中的代码似乎执行一步后面的用户input。 所以当电子邮件有效时,用户在button改变之前还必须敲击另一个键。 同样,如果电子邮件地址变为无效,button不会改变,直到再次点击一个密钥。 请注意,这也发生在设备上,而不仅仅是在模拟器中。 代码如下: func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) { if emailIsValidFormat(textField.text) { emailSubmitButton.alpha = 1 } else { emailSubmitButton.alpha = 0.4 } }

PagingEnabled在UIScrollView中的多个页面

编辑:请参阅下面的答案。 我终于放弃了,来这里问你我的问题… 我正在使用一个UIScrollView滚动菜单,带有小图标。 在每个页面上,启用分页function,中间有一个图标,左侧和右侧有两个半个可见图标。 我可以从一个图标移动到它的邻居,这很好,但重点是,如果我快速滚动,它不会从超过3个图标,这是屏幕的宽度移动。 我想要的是能够滚动超过3个图标,并且磁铁行为只有在放缓时才被触发。 我已经尝试安排滚动视图来计算其速度,并设置pagingEnabled属性,当它快速移动是,当它是再次减速,但一旦它被设置为YES,视图回来非常快它的原来的位置,好像它没有检测到我把它带到了一个新的页面。 有谁知道为什么这样做? 如果我有办法告诉视图“OK,现在分页已启用,但是看起来,你在15页之后,只是在当前页面的中心,不要在开始回来。 这是我的更新function(如果可以的话): -(void)update:(ccTime)dt { float velocity = fabsf((self.previousOffset-self.scrollView.contentOffset.y)/dt); self.previousOffset = self.scrollView.contentOffset.y; CCLOG(@"Velocity: %f", velocity); if(self.scrollView.pagingEnabled) { if(velocity > 100) { self.scrollView.pagingEnabled = NO; } } else { if(velocity < 100) { self.scrollView.pagingEnabled = YES; } } }

如何在目标c中打印RGB颜色的名称?

我selectRGB的颜色并将其保存为带有颜色名称的string 我的代码 color =[UIColor colorWithRed:255/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:pixel[3]/255.0]; 电stream输出: Color print: 1 0 0 1 预期输出: Color = Red