Objective-C: 类别中的实例变量
我只是问是否可以通过类别添加实例变量.我的特殊问题是,我需要在Asihttprequest对象中添加NSINDEXPATH属性,但我不想根据原则为ASIHTTPREQUEST子类. 我有什么选择吗? 感谢您的回答, 基督徒 解决方案 类别不能声明其他实例变量,但是由于OS X 10.6和iOS 3.1您可以使用关联参考. 您可以使用关联引用来模拟对象实例变量在现有类中的添加.使用关联引用,您可以在不修改类声明的情况下将存储添加到对象中.这是通过objc_setAssociatedObject和objc_getAssociatedObject完成的.如果将这些电话包装在属性的自定义Getter和Setter中,则可以伪造IVAR. 请看一下发帖作者 ole gegemann .
12 2024-03-07
编程技术问答社区
使用滑动手势删除tableview上的行
我正在尝试通过设置滑动手势,然后使用IBACTION调用Swipe已执行的行删除来绕过红色按钮删除(EditingStyledElete). NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0] - (IBAction)deleteSwipe:(id)sender{ [self deleteRow:self.tableView forCell:sender]; } -(void) deleteRow:(UITableView *)tableView forCell:(UITableViewCell *)bCell{ NSIndexPath *indexPath = [tableView indexPathForCell:bCell]; [tab
18 2023-12-20
编程技术问答社区
在某个Indexpath处删除二重验证
我有一堆Uilocalnotification,但我只想在给定的Indexpath上删除某个,因此 [[UIApplication sharedApplication] cancelAllLocalNotifications]; 不会为我锻炼.我知道我可以使用 [[UIApplication sharedApplication] cancelLocalNotification:UILocalNotification]; 但是如何从给定的NSINDEXPATH获得Uilocalnotification? 谢谢. 解决方案 您可以从:@property(nonatomic,copy) NSArray *scheduledLocalNotifications 中获得一系列计划的通知 通过选择的索引编号获取您想要的一个,然后将Uilocalnotification*传递给- (void)cancelLocalNotification:(UILocalNoti
34 2023-12-19
编程技术问答社区
如何从单元格中的按钮操作中获取indexpath?
我有一个带有两个动作的桌面视图,因为第一个是我使用委托DidSelectRowatIndExpath,因为第二个我想在单元格上的按钮上使用一个动作来做其他事情.我的问题是我没有成功获得indexpath?做到这一点的最佳实践是什么? 解决方案 如果已将按钮添加到单元格中, [cell.contentView addSubview:button]; 然后,您可以获取索引路径为 - (void)onButtonTapped:(UIButton *)button { UITableViewCell *cell = (UITableViewCell *)button.superview.superview; NSIndexPath *indexPath = [tableView indexPathForCell:cell]; // Go ahead } 其他解决方案 我正在使用此解决方案 - 使用点 获取单元格的索引路径 CGPoint
16 2023-12-19
编程技术问答社区
iOS UITableView 滚动到该部分的底部
我将制作一个带有2个部分的桌面视图.我可以以编程方式向每个部分添加单元格,当我添加时,我可以使用 滚动到表观的末端 [_tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX)]; 我的问题是如何滚动到第0节的末尾,因此当用户向第0节添加单元格时,TableView滚动到第0节中的最后一个单元格中. 谢谢. 解决方案 您可以尝试此代码: int yourSection = 2; int lastRow = [tableView numberOfRowsInSection:yourSection] - 1; [tableView scrollToRowAtIndexPath:[NSIndexPath lastRow inSection:yourSection] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; 您在部分中获取行数,
10 2023-12-18
编程技术问答社区
在UICollectionView中创建缓慢滚动到indexPath的功能
我正在从事一个项目,在该项目中,我正在使用uicollectionview创建一个"图像股票",其中我正在宣传一系列徽标. CollectionView是一项高,长12个项目,一次显示两到三个项目(取决于可见徽标的大小). 我想从第一个项目到最后一个慢的自动滚动动画,然后重复. 有人能够完成这项工作吗?我可以使用 进行滚动工作 [myCollection scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:(myImages.count -1) inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:YES]; 但这太快了! [UIView animateWithDuration:10 delay:2 options:(UIViewAnimationOptionAutoreverse + UIViewAnimatio
24 2023-11-05
编程技术问答社区
搜索后的表视图按钮选择错误
我在UITableViewCell中有UIButton.当UIButton点击时,我将敲击的按钮标签保存在数组中.因此,当我在UITableView中使用UISearchController搜索时,我将获得所需的输出,但是在错误的单元格中选择了所选按钮. PIC 1-选择按钮和搜索之前 图2-搜索后 在PIC 1中,我选择了属于"房间1"的按钮,但是在搜索之后,正如您在PIC 2中看到的那样,输出是正确的,但是不应选择按钮.如何解决这个问题? ----编辑---- 实施 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (shouldShowSearchresu
12 2023-11-05
编程技术问答社区
搜索后错误的位置上的uitaiteView neckmarks
我想在我的表观视图中搜索,设置选中标记并在Realm中保存对象.但是,如果我在搜索后设置了一个检查标记并取消搜索,则该检查标记位于我单击的Indexpath处,而不是在对象上.我无法更好地解释它,所以这里有一个例子: 这是我的代码: class ShowExcercisesTableViewController: UITableViewController, UISearchResultsUpdating, UISearchBarDelegate { //Properties let realm = try! Realm() var request2: Results?{ didSet{ tableView.reloadData() } } var searchOrNot: Excercise? var searchResults = try! Realm().objects(Excercise.self) var resul
14 2023-11-05
编程技术问答社区
firestore文档删除和崩溃,逻辑上有错误,但没有逻辑就可以删除正常
因此,我的目标是如果条件是错误而没有错误的情况,则删除firestore文档.首先,我有此功能用于删除firestore文档: override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { (deleted, view, completion) in let alert = UIAlertController(title: "Delete Event", message: "Are you sure you want to delete this eve
10 2023-11-05
编程技术问答社区
从自定义UITableViewCell访问indexPath
我正在尝试创建一个UITATIONVIEW,以允许用户输入类似于许多设置的数据,并在其他TableViews上使用一些Textfields和Chateouts以获取复选框.对于应用程序中的这种常见功能,这似乎并不是很简单. 我在从我的自定义uitableviewcell上访问indexpath.这是我分配自定义uitaiteViewCell的地方. UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[TextFieldCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } 在我的Textfiel
36 2023-11-04
编程技术问答社区
uitaiteView选定的indexpath值给出了错误
团队, 我有50个以上的细胞计数. 每个单元的宽度为60. 当我滚动到20个单元格时,然后点击任何单元 它的索引路径值高于单元格值,而不是单击单元格值 CellForrowatIndExpath - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { [[cell checkButton] addTarget:self action:@selector(checkButtonAction:) forControlEvents:UIControlEventTouchUpInside]; } -(void)checkButtonAction:(id)sender CGPoint touchPoint = [sender convertPoint:CGPointZero toView
10 2023-11-04
编程技术问答社区
UITableView方法 "indexPathForRowAtPoint: "的奇怪行为
如以下代码中所示,当tableview被拉伸(永不滚动)时,NSLog(@"tap is not on the tableview cell")将始终称为(,我认为indexpath始终将是nil ).但是,当我在截面标题中以大于2的截面标题中点击头像时,NSLog不会被调用.很奇怪,有人知道这里发生了什么吗? -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { ... UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; tapGesture.numberOfTapsRequired = 1; [avatar addGestu
18 2023-11-04
编程技术问答社区
如何在单击按钮时将表视图单元格重置为none?
我正在尝试编码一个重置按钮,因此当我单击该按钮时,所有TableView单元格的附件类型都设置为none. 我有一个清晰的概念,即如何做,但是我对iPhone开发非常陌生,所以我只需要使用什么方法来打电话. 我认为我需要采取的步骤:我使用for循环在所有行中迭代 - 因此我正在计算单元格的数量(成功完成).我的问题是,如果配件类型为选中标记,我不知道如何检查每个行/单元格并将其设置为none. . 另外,我可以将所有单元格设置为AccessoryNone,但是我已经在以下计算中进行了一些计算: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 所以我不确定如何实现. 解决方案 无需检查accessoryType首先是什么,只需将UITableViewCellAccessoryNone分配给所有UITableViewCell
8 2023-11-04
编程技术问答社区
UITableView selectRowAtIndexPath的断言失败
我觉得这是一个需要特别关注的问题...我的Google-Fu很好,但我无法获得任何有用的问题. 这是最简单的事情,但我似乎无法弄清楚它的问题. 我有一个UitableView.这是我的VC调用_form的子视图.我将其用于样式目的,而不是真正显示数据.它有2个单元. 在某个事件中,我正在尝试使用SelectRowatIndExpath选择其他单元格:动画:scrollPosition. 当我这样做时,它是sigabrts. 一个简单的示例: - (IBAction)submitClicked:(id)sender { [_submit setTitle:@"Wha!?" forState:UIControlStateNormal]; NSIndexPath *row = [NSIndexPath indexPathWithIndex:0]; NSLog(@"%d", [[_form indexPathForSelectedRow
14 2023-11-04
编程技术问答社区
索引XPath。行从1开始,而不是从0开始
我正面临着uitableview的胜利问题. 某个时候,当我的表的数据源/numberOfrowsInsection具有3个值时,CellForowAtIndExpath从0-1而不是0-0开始. 有人可以帮助我找到这个问题发生的可能原因. 甚至尝试打印日志,但显示为0 -1和0 -2的日志,但没有显示为0 -0. 这意味着它没有被第一行召唤,即0 -0. 解决方案 tableView:cellForRowAtIndexPath:根据需要显示单元格,如果不显示单元格,则未调用.如果不显示第0行,则不会调用第0-0节. 其他解决方案 就像Zaph所说的那样,tableView:cellForRowAtIndexPath: tableView:cellForRowAtIndexPath:每当一个表想要显示给定索引路径的单元格时,就会称呼tableView:cellForRowAtIndexPath:,因此,如果您没有获得0的索引路径,则表示您'可能会做一些阻止该单元显示的事情
14 2023-11-04
编程技术问答社区
在NSMutableDictionary中使用NSIndexPath作为键的问题?
尝试使用NSIndexPath作为key在NSMutableDictionary中存储和检索值的特定原因可能会失败? 我最初是为了为UITableView存储UITableViewCell heights(self.cellHeights)的NSMutableDictionary NSMutableDictionary.每次攻击UITableViewCell时,该单元格会根据该特定indexPath的NSMutableDictionary中存储的值在两个不同的高度之间进行扩展或收缩: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSNumber *heightNSNumber = [self.cellHeights objectForKey:indexPath]; if (!height
30 2023-11-04
编程技术问答社区
tableView:cellForRowAtIndexPath在删除项目后被调用,索引路径为零
我有一个由NSFetchedResultsController管理的香草UITableView显示给定核心数据实体的所有实例. 当用户通过在表视图中删除该条目时,tableView:cellForRowAtIndexPath:最终用nil indexPath在我的UITableViewController上被调用.由于我没想到会用nil indexPath调用它,因此该应用程序崩溃了. 我可以通过检查该nil值然后返回空单元格,可以在崩溃周围工作.这似乎有效,但我仍然担心我可能处理了一些问题.有任何想法吗?有没有人看到tableView:cellForRowAtIndexPath:用nil indexPath? 请注意,仅当用户通过在单元格上删除用户从表视图中删除.使用表视图编辑模式删除项目时,这不会发生.删除单元格的两种方式之间会有什么不同? 那么,在表查看委托方法中获得nil indexPath的情况真的很好吗? 我的视图控制器代码确实是标准的.这是删除
12 2023-11-04
编程技术问答社区
在Swift中从UITableViewCell子类内部获取IndexPath
我有一个自定义UITableViewCell子类及其关联的XIB.我在这个单元格中有一个UILabel和UIButton,并且我将按钮的内部动作连接到了子类. 我需要的是,当单元格中的该按钮被点击时,以获取具有该按钮的单元格的indexpath.也许通过代表或其他东西将其发送回View Controller. 由于我在UITableViewCell子类内t从单元子类内部提到了TableView.经过进一步调查,我发现另一种解决方案和我在Swift中实现了它. import UIKit class ContactCell: UITableViewCell { @IBOutlet weak var nameLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code selectionS
12 2023-11-04
编程技术问答社区
DidSelectRowatingIndexPath返回错误的IndexPath
我遇到了一个非常令人困惑的错误. 我的uitableview的第一个行返回 1 和 second 一个一个一个返回 0 在indexpath中!那怎么可能? 在我的` - (void)viewDidload"一切都很好.我用 成功地突出了第一行 currentRow = 0; [tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:currentRow inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone]; i具有用于跟踪选择哪个行的变量currentRow(另一个控件会根据当前选择哪一个更改). 现在在我的`didDeselectRowatIndExpath`委托函数我拥有: -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexP
16 2023-11-04
编程技术问答社区
如何为TableView创建NSIndexPath
我需要在我定义的函数中删除表的第1行.为了使用deleteRowAtIndexPath,您必须将IndexPath与部分定义.如何创建这样的indexpath? 带有int {1}的数组,因为其唯一的成员将崩溃; NSLOG消息指出,也需要定义该部分. *编辑 - >与单元删除有关的代码: NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0]; NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil]; // [self.tableView beginUpdates]; [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade]; // [self.tableVi
16 2023-11-04
编程技术问答社区