UITableViewCell Objective C 代码上的 3D Touch Peek 和 Pop。 (用力触摸)

2024-02-13

我需要启用Peek And Pop上的功能UITableViewCell在 Objective C 中通过使用 Force Touch。并且还需要在预览视图下显示一些操作,例如默认邮件应用程序。我是 iOS 新手,请帮助我实现这一目标。


使用操作对 TableViewCell 和集合视图单元格进行查看和弹出效果

1)您应该将调用者 viewController 类寻址为 UIViewControllerPreviewing Delegate

@interfaceMyTableViewController()

2)创建@property用于存储信息。

@property (nonatomic, strong) id previewingContext;

3)在ViewDidLoad中调用forceTouchIntialize方法

- (void)viewDidLoad {
    [super viewDidLoad];
    [self forceTochIntialize];
}

4)检查压力触摸是否可用

-(void)forceTouchIntialize{
    if ([self isForceTouchAvailable]) {
        self.previewingContext = [self registerForPreviewingWithDelegate:self sourceView:self.view];
    }
}

- (BOOL)isForceTouchAvailable {
    BOOL isForceTouchAvailable = NO;
    if ([self.traitCollection respondsToSelector:@selector(forceTouchCapability)]) {
        isForceTouchAvailable = self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable;
    }
    return isForceTouchAvailable;
}

5)指定视图控制器要预览哪些内容(FOR PEEK)

- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing> )previewingContext viewControllerForLocation:(CGPoint)location{

    CGPoint cellPostion = [yourTableView convertPoint:location fromView:self.view];

    NSIndexPath *path = yourTableView indexPathForRowAtPoint:cellPostion];

    if (path) {

        UITableViewCell *tableCell = [yourTableView 

cellForRowAtIndexPath:path];

//Pushing to a nib File

        PushViewController *previewController = [[PushViewController alloc] initWithNibName:@"PushViewController" bundle:nil];

//To Pass data to Preview ViewController

 //       id temp = [yourDataArray objectAtIndex:path.row];

//        PushViewController.anyObject=temp;     

   previewingContext.sourceRect = [self.view convertRect:tableCell.frame fromView: yourTableView

 ];        return previewController;

    }

    return nil;

}

6)深度压力下的 POP(适用于 POP)

-(void)previewingContext:(id )previewingContext commitViewController: (UIViewController *)viewControllerToCommit {
    [self.navigationController showViewController:viewControllerToCommit sender:nil];
}

7)当控制器看到并向上滑动时,如果您想添加删除等按钮,请将此方法添加到您的预览视图控制器中(在此示例中为“ PushViewController”)

- (NSArray<id> *)previewActionItems {
    UIPreviewAction *previewAction1 = [UIPreviewAction actionWithTitle:@"delete" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *action,  UIViewController *previewViewController){

    }];

    UIPreviewAction *previewAction2 = [UIPreviewAction actionWithTitle:@"archive" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *action, UIViewController *previewViewController){

    }];
    return @[previewAction1,previewAction2];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UITableViewCell Objective C 代码上的 3D Touch Peek 和 Pop。 (用力触摸) 的相关文章

  • iOS9 Sprite 套件问题

    一切都很顺利 直到我升级到 xCode 7 和 iOS 9 我当前的项目是一个 2D 平台游戏 自从升级以来 我就陷入了我们许多人似乎都面临的精灵套件错误 错误的困扰 我的问题是 每次游戏在模拟器或设备上运行时 所有精灵的 zPositio
  • 如何使用 Objective-C 解析 JSON?

    我是 iPhone 新手 谁能告诉我解析此数据并获取活动详细信息 名字和姓氏的步骤 error false data activity id 35336 user id 1 user first name Chandra Bhusan us
  • HttpClient setReachabilityStatusChangedBlock 声明没有接口

    尝试使用 AFNetworkings ReachabilityStatusChanged 但得到 HTTPCLIENT 没有可见的 interface 声明选择器 setReachabilityStatusChangeBlock 但Http
  • 核心数据executeFetchRequest消耗大量内存

    我正在核心数据数据库中插入 cca 100 000 条记录 数据库包含 3 个实体 球员 俱乐部 球员俱乐部 实体之间存在关系 玩家 gt 玩家俱乐部俱乐部 在 PlayerClub 中插入时 我注意到插入大约 50 000 条记录后会消耗
  • Objective-C 属性和内存管理

    给出以下属性定义 property nonatomic retain MyObject foo 以下代码是否会导致内存泄漏 self foo MyObject alloc init 看起来 alloc 调用将对象上的保留计数增加到 1 然后
  • 使用 HTTP NSURL 创建 AVAsset

    我正在尝试合并两个NSURLs包含视频参考 其中一个 URL 指向 AWS 上的视频 另一个 URL 指向本地存储的视频 我的导出代码有效 因为我已经尝试使用两个本地视频 但每当我尝试合并 HTTP url 和本地 url 时 我都会收到此
  • 是否可以恢复我删除的 xcdatamodel 文件?

    我愚蠢地删除了它 我删除了其中包含不同版本的文件 我可以恢复到旧快照 但从那时起我就已经完成了工作 是否可以恢复到我的存档之一 或者我只能从那里提交 共享 我仍然可以运行该应用程序 但我需要对数据库进行更改 Xcode 将 xcdatamo
  • 从 iPhone 传输视频

    我可以从 iPhone 的相机中获取单独的帧 我需要的是一种将它们与声音打包以便流式传输到服务器的方法 收到文件后发送它们并不是什么大问题 我遇到问题的是流媒体文件的生成 我一直在尝试让 FFMpeg 工作 但运气不佳 有人对我如何实现这一
  • iOS UITableView:使用 CAGradientLayer 将背景颜色指定为渐变

    我刚刚开始使用 Xcode 4 3 中的主从视图模板 我试图更改主视图的背景颜色并将其设置为颜色渐变 这是我尝试过的 Colors m import Colors h implementation Colors UIColor naviga
  • 如何获得 UICollectionView 的矩形

    我想在 UICollectionView 中找到节标题的框架 我对 UITableView 也有类似的情况 为此 我能够通过执行以下操作来获得其正确性 CGRect rect self tableView rectForHeaderInSe
  • 当您从不同的视图控制器进行segue时,如何将数据从一个视图控制器保存(追加)到另一个视图控制器?

    抱歉 问题有点长 请多多包涵 基本上 我正在尝试使用 swift 编写一个简单的递增 递减 ios 应用程序 我有三个主视图控制器 一个是 初始视图控制器 即根视图控制器 仅包含两个按钮 一个以模态方式呈现到实际计数页面 第二个视图控制器
  • 我可以安全地将 UInt32 存储到 NSUInteger 吗?

    在标头中 它的定义如下 if LP64 TARGET OS EMBEDDED TARGET OS IPHONE TARGET OS WIN32 NS BUILD 32 LIKE 64 typedef long NSInteger typed
  • XOR或其他简单的文件混淆方法ios目标c

    我正在开发一个使用受版权保护的 pdf 文件的 ios 应用程序 我正在寻找一些简单的方法来混淆文件以确保安全 这些方法不需要我经历额外的大众市场 CCATS 加密审查流程 但也将确保版权所有者已尽我所能来保证他们的数据安全 当然 我用密码
  • Xcode 7.2 无法连接到装有 iOS 9.2 的 iPhone

    出于开发目的 我已经在我的 iPhone 5s 上安装了 iOS 9 2 beta 当然 我还安装了Xcode 7 2 beta 当我想在设备上运行应用程序扩展 键盘 时 该应用程序会正确构建 安装在 iPhone 上并启动 然而 然后我在
  • Swift 字典映射 - 闭包中的 init

    我有 Swift 字典 private var params String AnyObject 这包含查询项目 例如 lat 40 lon 100 我想将这本词典映射到NSURLQueryItem大批 我想让它 迅速 params map
  • 块如何捕获其封闭范围之外的变量?

    我知道 Objective C 块可以捕获并设置其封闭范围之外的变量值 它是如何做到的 它实际上相当简单 并在 Clang 的块实现规范中进行了描述 在 导入变量 http clang llvm org docs Block ABI App
  • 当键盘出现时调整 UITextView 的大小

    我想在键盘出现时调整文本视图的大小 我的代码如下 我打开了自动布局 因此使用来自超级视图的 textView gt bottom 空间的约束 并通过 IBOutlet distanceFromBottom 引用它 void keyboard
  • 测试 NSMutableArray 是否包含字符串对象

    我有一个NSMutableArray其中包含一些NSString对象 如何测试数组是否包含特定的字符串文字 I tried array containsObject teststring 但这行不通 你所做的应该很好 例如 NSArray
  • Objective-C 中 NSURL 为 null 而 NSString 是正确的

    我有一个NSString包含一个 url 以及当我分配时NSURL与NSString NSURL 输出 空 这是因为url中有一些非法字符 导致NSURL不编码就无法读取NSString包含网址 NSString u incomingUrl
  • 在启动屏幕中执行代码已更新

    在原始启动屏幕中执行代码 https stackoverflow com questions 27642016 execute code in launch screen 现在默认的LaunchScreenXcode 项目中的文件已更改为

随机推荐