小编Sim*_*ver的帖子

使用editActionsForRowAtIndexPath时,删除UITableViewCell的显示滑动的正确方法是什么?

我有一个tableView在其中我可以通过使用以下方法来刷单元格以显示选项 - 在我的情况下,'share'和'delete'选项:

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{

当用户在单元格上滑动以显示选项然后点击时delete我会打开UIAlertController一个确认.一切都很好,如果他们说删除,因为我删除了我的核心数据库中的对象,我NSFetchedResultController负责更新tableView

如果用户拒绝执行删除操作,则单元格仍保持幻灯片效果仍显示选项.我希望它消失.我知道,[tableView reloadData或者,更有效率,重新加载一个单元格将解决问题,但是我错过了哪个单元格的方法调用或属性可以完成这项工作?

objective-c uitableview ios8

9
推荐指数
1
解决办法
1519
查看次数

启用多项选择后,如何使搜索栏与CNContactPicker一起使用?

我的项目正在使用ContactsiOS 9中引入的新框架

我的几个UITableView子类调用了一个CNContactPicker,我想使用顶部显示的搜索栏.

这些视图中的一些只是实现委托方法 - contactPicker:didSelectContact:另一个实现了该方法以及 - contactPicker:didSelectContacts:,其实现导致CNContactPicker允许多个选择.

我让各个类声明它们是,UISearchControllerDelegates并且很高兴看到只需要使用我的contactPicker委托方法进行选择.

不幸的是,第三个视图不起作用 - 您在搜索字段中键入内容,它会根据您键入的内容提供过滤器列表,但是当您点击选择时,选择会突出显示但不会发生任何其他情况.如果我回到代码并注释掉contactPicker:didSelectContacts:方法然后它工作,

据推测,有一种方法可以使此响应,否则CNContactPicker当允许多个选择时,视图将不会显示搜索栏.

我应该怎么做才能使这项工作?

uisearchcontroller ios9 cncontact

9
推荐指数
0
解决办法
397
查看次数

我如何识别哪个textField在包含2个uiTextFields的动态创建的UITableCell上触发了textFieldDidEndEditing

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然后我卡住了

我希望这是一个简单的事情,我很想念,因为我有点像菜鸟!

感谢您花时间阅读和回复

干杯

西蒙

uitextfield ios uitextfielddelegate

8
推荐指数
1
解决办法
9524
查看次数

如何在不编写代码的情况下在iOS模拟器中设置位置?

我的问题是如何在iOS模拟器中运行时设置我的应用程序的gps位置

我的应用程序中的主屏幕显示基于GPS位置的日出和日落时间,我想要一个具有合理价值的屏幕截图 - 我在英国,日出时间显示美国日出和日落的英国时间.

因为它是在启动屏幕上的一个解决方案,转到Debug - > Simulate Location,对我来说太迟了.

我花了一段时间才找到工作,当我在这里搜索时我没有找到答案(也许没有以正确的方式提问.所以我将在下面回答我自己的问题,希望能阻止别人浪费时间

gps core-location ios ios-simulator

7
推荐指数
2
解决办法
2万
查看次数

是否可以从UIView上的UITableViewCell转到另一个视图

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子类.

在这种情况下尝试调用新视图的正确方法是什么

谢谢

西蒙

uitableview ios segue uistoryboardsegue

5
推荐指数
2
解决办法
7892
查看次数

更新Xcode 8核心数据NSManagedObject子类更改的Objective C项目的正确方法

我从编码中休息了几个月然后回来发现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 + …

core-data objective-c nsmanagedobject ios10 xcode8

5
推荐指数
1
解决办法
1030
查看次数

带有标签和UISlider的自定义UITableViewCell在ios 7中的6次崩溃中运行良好.UITableViewCellScrollView?

我打算把它作为一个问题发布,但我把它解决了,并且认为我会分享它以防其他人遇到这个问题.

我有一个名为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]:发送到实例的无法识别的选择器

我在文档中找不到对此类的任何引用.

uitableview uislider ios7

3
推荐指数
1
解决办法
1367
查看次数

scrollToRowAtIndexPath在iOS 7中停止工作 - ?UITableViewCellScrollView?更改UITableViewCell层次结构

我升级到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中不起作用.它也不会产生任何错误.

uitableview ios7

2
推荐指数
1
解决办法
3398
查看次数

使用sender识别在ios中调用方法的对象

我是新手,所以在此先感谢您的帮助。

我只是在 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

所以这显然是错误的。

cocoa-touch objective-c ios5

1
推荐指数
1
解决办法
966
查看次数

使用rangeOfString和textfield shouldChangeCharactersInRange - 删除字符?

我正在使用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字符出现,我认为奇怪

谢谢

objective-c textfield nsstring ios

1
推荐指数
1
解决办法
2357
查看次数