我有一个tableView在其中我可以通过使用以下方法来刷单元格以显示选项 - 在我的情况下,'share'和'delete'选项:
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
当用户在单元格上滑动以显示选项然后点击时delete我会打开UIAlertController一个确认.一切都很好,如果他们说删除,因为我删除了我的核心数据库中的对象,我NSFetchedResultController负责更新tableView
如果用户拒绝执行删除操作,则单元格仍保持幻灯片效果仍显示选项.我希望它消失.我知道,[tableView reloadData或者,更有效率,重新加载一个单元格将解决问题,但是我错过了哪个单元格的方法调用或属性可以完成这项工作?
我的项目正在使用ContactsiOS 9中引入的新框架
我的几个UITableView子类调用了一个CNContactPicker,我想使用顶部显示的搜索栏.
这些视图中的一些只是实现委托方法 - contactPicker:didSelectContact:另一个实现了该方法以及 - contactPicker:didSelectContacts:,其实现导致CNContactPicker允许多个选择.
我让各个类声明它们是,UISearchControllerDelegates并且很高兴看到只需要使用我的contactPicker委托方法进行选择.
不幸的是,第三个视图不起作用 - 您在搜索字段中键入内容,它会根据您键入的内容提供过滤器列表,但是当您点击选择时,选择会突出显示但不会发生任何其他情况.如果我回到代码并注释掉contactPicker:didSelectContacts:方法然后它工作,
据推测,有一种方法可以使此响应,否则CNContactPicker当允许多个选择时,视图将不会显示搜索栏.
我应该怎么做才能使这项工作?
iOS 6 xcode 4.6.2使用故事板
大家好我的问题是这个
我正在使用一个动态UITableView,它包含许多单元格,每个单元格都有两个单元格UITextFields.这两个字段在自定义单元格中定义为
@property (strong, nonatomic) IBOutlet UITextField *lowRangeField;
@property (strong, nonatomic) IBOutlet UITextField *highRangeField;
Run Code Online (Sandbox Code Playgroud)
我想用
-(void) textFieldDidEndEditing:(UITextField*) textfield
Run Code Online (Sandbox Code Playgroud)
获取值并将其保存到核心数据存储中.
现在,显然,我可以得到值并将其分配给我喜欢的地方,因为我有指向它的指针textfield.我的问题是我不知道如何识别cell这个实际上是哪个字段.我知道我可以textfields superview识别它所在的哪个单元格,所以我可以找出它是哪一组lowRangeField和highRangeField然后我卡住了
我希望这是一个简单的事情,我很想念,因为我有点像菜鸟!
感谢您花时间阅读和回复
干杯
西蒙
我的问题是如何在iOS模拟器中运行时设置我的应用程序的gps位置
我的应用程序中的主屏幕显示基于GPS位置的日出和日落时间,我想要一个具有合理价值的屏幕截图 - 我在英国,日出时间显示美国日出和日落的英国时间.
因为它是在启动屏幕上的一个解决方案,转到Debug - > Simulate Location,对我来说太迟了.
我花了一段时间才找到工作,当我在这里搜索时我没有找到答案(也许没有以正确的方式提问.所以我将在下面回答我自己的问题,希望能阻止别人浪费时间
Xcode 4.6.1 iOS 6使用故事板
我的问题是这个
我在UIViewController中的UIView上有一个带有动态原型单元的UITableView(它本身嵌入在导航控制器中),我想从一个特定的单元格转到另一个视图
(在任何人建议我应该使用UITableViewController之前,我确实在UIView上有其他东西,所以我出于某种原因设置了这种方式.)
现在我不知道如何创建segue
如果我从原型UITableViewCell拖动来创建一个segue,所有生成的单元格会自动调用segue - 当我只需要一个这样做时.这是正常的行为,如果我通过从UITableViewController拖动创建segue并调用[self performSegueWithIdentifier:....来自我的didSelectRowAtIndexPathMethod,因此只有我想要执行此segue的特定单元格触发它,我会解决这个问题.
在这种情况下我没有UITableViewController - 只是UIView上的UITableView,它是UIViewController子类的一部分
我一直在玩,我刚刚发现我无法从UITableView拖动 - 不允许你这样做,所以这是一个deadend.
我似乎唯一的选择就是从UIViewController中拖出来
所以我试过了,当然XCode在执行segue线上抛出一个错误,告诉我我...没有'LocationTV'的可见界面声明了选择器performSegueWithIdentifier.LocationTv是我的tableview子类.
在这种情况下尝试调用新视图的正确方法是什么
谢谢
西蒙
我从编码中休息了几个月然后回来发现CoreData与Xcode8/iOS10/macOS Sierra的变化.
我一直试图在Objective C中围绕新的NSManagedObject子类生成,但网上的内容很少.在我开始屠宰我的项目并完全搞砸了之前,我需要澄清一些事情,但首先,我发现的一些事情可能对其他人有用...
事情在哪里
自动生成的文件深埋在DerivedData文件夹中.查看USER-> Library-> Developer-> Xcode-> DerivedData-> ProjectName-lotsOfRandomLetters-> Build然后继续打开文件夹,直到找到DerivedSources-> CoreDataGenerated.
自动生成的文件不会出现在项目文件夹或导航器中,但如果一个Xcode中存在错误,则会显示源代码.
Xcode生成的东西
有三种codegen设置 - 手动/无,类定义和类别/扩展.
当实体codegen设置为manual/none(这是旧行为)时使用Editor-> Create创建NSmanagedObject子类NSManagedObject Subclass在项目中生成4个文件...
实体+ CoreDataClass.h和实体+ CoreDataClass.m和实体+ CoreDataProperties.h和实体+ CoreDataProperties.m
(以前的版本Xcode 7生成了Entity.h,Entity.m,Entity + CoreDataProperties.h和Entity + CoreDataProperties.m文件)
如果实体的codegen设置为Class Definition,Xcode会在派生数据文件夹中自动生成这4个相同的文件 - 而不是项目.然后这些文件会标记一条注释,告诉您不要更改它们.
如果实体codegen设置为Category/Extension,Xcode将生成2个文件.这些文件标有注释,告诉您不要更改它们.这些是...
Entity + CoreDataProperties.h和Entity + CoreDataProperties.m
这两个文件期望Entity.h文件在项目中,如果不存在则会在Xcode中显示错误.这是您有一次能够在Xcode中查看其中一个文件的来源.
什么是这些文件
+ CoreDataProperties文件看起来与生成以前版本的Xcode生成文件的文件相同,只有一个添加.它们包含实体/ NSmanagedObject的所有属性/属性以及处理具有一对多或多对多关系的实体的方法.新增加的是fetchRequest子类化NSmanageObject的新fetchRequest方法的方法.
问题
1)当您没有任何额外的属性/功能添加到NSManagedObject子类时,类定义现在是codegen的明显和最佳选择,因为它会自动为您更新文件(当您使用cmd -s保存项目时) ?
2)使用+ CoreDataClass命名文件遵循类的类别约定,这意味着应该有一个类作为扩展.
假设Entity + CoreDateClass .h/m文件是旧Entity.h/m文件的直接替换,我是否正确?并且它实际上不是一个类别,尽管文件名?
3)对于新的NSManagedObject子类,我应该导入Entity + CoreDataClass.h而不是Entity.h吗?
4)如果我想通过删除大部分NSManagedObject子类文件来整理我的项目,我只是删除Xcode中的文件并将实体codegen设置为Class Definition或...
当你尝试#import entity.h或者我必须经历并查找#import entity.h的每个引用并将它们更改为#import entity + CoreDataClass.h时,是否存在寻找实体+ CoreDataClass的魔法? ?
5)我是否正确地假设如果我想要一个NSManagedObject子类我要添加一个属性和一个方法,我应该将codegen设置为Category/Extension?
6)如果我选择Category/Extension我必须创建自己的NSmanagedObject子类文件,它只是entity.h而不是entity + CoreDataClass.h?
7)如果entity + …
我打算把它作为一个问题发布,但我把它解决了,并且认为我会分享它以防其他人遇到这个问题.
我有一个名为SliderCell的自定义tableViewCell.我在桌子上使用了许多SliderCells.
SliderCell包含一个UISlider和一个UILabel.
当用户移动滑块时,标签将使用新值进行更新
这是在这种方法中
- (IBAction)possibilityDidChange:(UISlider *)sender {
Run Code Online (Sandbox Code Playgroud)
现在,在这种情况下,发件人是UISlider控件
要设置UILabel的值,我需要获取发件人所在的tableviewCell(sliderCell).
最初我得到的如下
SliderCell *theAnimalCell =(SliderCell*)sender.superview.superview;
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样设置标签
theAnimalCell.sliderLabel.text = [NSString stringWithFormat:@"turtles %@",possibilityString];
Run Code Online (Sandbox Code Playgroud)
当我使用Xcode 4.x并以iOS6.1为目标时,一切顺利
现在,在决定200米+不能出错之后,我只是针对iOS 7而且突然间我碰到任何我的UISliders时都会崩溃
我收到这个错误
[UITableViewCellScrollView currentSlider]:发送到实例的无法识别的选择器
我在文档中找不到对此类的任何引用.
我升级到Xcode 5和我的应用程序以目标iOS 7和我的应用程序不再响应scrollToIndexPath滚动适当的tableviewcell克服键盘的方式
我的设置是我有一个自定义的tableview单元格,上面有文本字段,并用它来生成多个tableview单元格来显示和编辑地址的一部分.
点击单元格上的文本字段触发
- (void)textFieldDidBeginEditing:(UITextField *)textField
Run Code Online (Sandbox Code Playgroud)
并且让它滚动到顶部的代码,不受键盘的影响如下
UITableViewCell *cell = (UITableViewCell*) textField.superview.superview;
[self scrollToRowAtIndexPath:[self indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
Run Code Online (Sandbox Code Playgroud)
这在iOS 6中运行良好,但在iOS 7中不起作用.它也不会产生任何错误.
我是新手,所以在此先感谢您的帮助。
我只是在 iOS 中做一些练习,我有 2 个不同的东西调用相同的例程。
这些消息调用中的每一个都通过发送方。其中一个UIButton是调用when touchUpInside,一个是UISegmentedControl调用when valueChanges。
我需要在相同的方法中稍微不同地处理初始部分,我知道我以某种方式使用了 sender。
我需要做的是询问发件人是 aUIButton还是发件人是UISegmentedControl.
我试过
if ([sender isKindOfClass:UISegmentedControl]) { ... }
Run Code Online (Sandbox Code Playgroud)
和
if ([sender isKindOfClass:UIButton]) { ... }
Run Code Online (Sandbox Code Playgroud)
两者都抛出了这样的错误:
Unexpected interface name "UIButton": expected expression
所以这显然是错误的。
我正在使用rangeofString和textfield:shouldChangeCharactersinRange:来限制在文本字段中有效的击键类型.
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *includeString = @"1234567890-()+" ;
if ([includeString rangeOfString:string].location == NSNotFound) {
return NO;
}
return YES;
Run Code Online (Sandbox Code Playgroud)
}
这工作正常除了我现在不能使用删除键.任何想法如何表示删除键将其添加到includeString?
我试过了
`NSString*includeString = @"1234567890 - ()+\b"
但这不起作用 - 它也不允许\或b字符出现,我认为奇怪
谢谢
ios ×4
objective-c ×4
uitableview ×4
ios7 ×2
cncontact ×1
cocoa-touch ×1
core-data ×1
gps ×1
ios10 ×1
ios5 ×1
ios8 ×1
ios9 ×1
nsstring ×1
segue ×1
textfield ×1
uislider ×1
uitextfield ×1
xcode8 ×1