小编Osc*_*and的帖子

在UICollectionViewCell上长按手势

我想知道如何将长按手势识别器添加到UICollectionView的(子类).我在文档中读到它默认添加,但我无法弄清楚如何.

我想要做的是:长按一个单元格(我有一个来自github的日历),得到哪个单元格,然后用它做东西.我需要知道什么细胞是长按的.抱歉这个广泛的问题,但我无论是谷歌还是SO都找不到更好的东西

objective-c ios uicollectionview

104
推荐指数
5
解决办法
8万
查看次数

如何从UIGestureRecognizer获取UITouch位置

我想从UIGestureRecognizer获取我的点击的UITouch位置,但我无法弄清楚如何查看文档和其他SO问题.你们其中一个可以指导我吗?

- (void)handleTap:(UITapGestureRecognizer *)tapRecognizer
{
    CCLOG(@"Single tap");
    UITouch *locationOfTap = tapRecognizer; //This doesn't work

    CGPoint touchLocation = [_tileMap convertTouchToNodeSpace:locationOfTap];
    //convertTouchToNodeSpace requires UITouch

    [_cat moveToward:touchLocation];
}
Run Code Online (Sandbox Code Playgroud)

这里的固定代码 - 这也修复了Y轴

CGPoint touchLocation = [[CCDirector sharedDirector] convertToGL:[self convertToNodeSpace:[tapRecognizer locationInView:[[CCDirector sharedDirector] openGLView]]]];
Run Code Online (Sandbox Code Playgroud)

xcode objective-c cocos2d-iphone uigesturerecognizer ios

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

监视对数组对象的更改

我根本不知道这是否可行,但它会让我免受很多压力和糟糕的代码.是否有可能在阵列更新时进行监控?例如,方法A将数组更改a=[1,2,3]a=[1,2,3,4],是否有可能在a更新时触发某种委托?

swift swift-array

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

NSObject自定义init与对象/参数

我想要完成的是类似的东西

Person *person1 = [[Person alloc]initWithDict:dict];
Run Code Online (Sandbox Code Playgroud)

然后在NSObject"人"中,有类似的东西:

-(void)initWithDict:(NSDictionary*)dict{
    self.name = [dict objectForKey:@"Name"];
    self.age = [dict objectForKey:@"Age"];
    return (Person with name and age);
}
Run Code Online (Sandbox Code Playgroud)

然后,我允许我继续使用人物对象与那些参数.这是可能的,还是我必须正常做

Person *person1 = [[Person alloc]init];
person1.name = @"Bob";
person1.age = @"123";
Run Code Online (Sandbox Code Playgroud)

objective-c nsobject ios

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

删除数组中的重复对象

我有一个包含我的Post对象的数组.每个人Post都有id房产.

有没有一种更有效的方法来查找我的数组中的重复帖子ID

for post1 in posts {
    for post2 in posts {
        if post1.id == post2.id {
            posts.removeObject(post2)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift

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

UIWebView的全部内容嵌入在UITableView中

我已经为这两天苦苦挣扎了,所以我和互联网的聪明人一起参与其中.

我正在展示一篇文章作为我的一部分UITableView.为了正确显示,我需要给代表一个单元格的高度,我希望它与UIWebView高度相同,所以我可以在WebView上禁用滚动并将整个Web内容显示为静态细胞.

我的第一种方法是在heightForRowAtIndexpath方法中渲染它,但这显然不起作用,因为我需要等待UIWebViewDelegate告诉我何时Web视图完全加载并具有高度.过了一会儿,我发现了一个工作解决方案,它使用Web视图委托在加载Web视图时刷新单元格高度.

工作正常,直到屏幕大小改变.无论是旋转还是全屏我的UISplitView.我强制对它进行更新didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation),但是这会使它闪烁大约10次然后才能进入正确的高度.我记录了这个更改,似乎WebView多次调用自身,导致循环.

曾经出现在这个日志,从我旋转屏幕开始.

每次重新加载时它会闪烁一次,正如您所看到的,它会自动重新加载一次.

所以.我需要一种在uitableview中显示整个Web视图内容的方法,并在屏幕大小更改时可靠地获取高度.如果有人以前以任何方式管理过这个,请告诉我.我会给任何可以解决这个问题的人一个赏金和我的长子,因为它让我疯了.

这是我的相关代码.

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    switch indexPath.row {
case 4:
        //Content
        print("Height for row called")
        return CGFloat(webViewHeight)
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    switch (indexPath.row){
//HTML Content View
    case 4:
        let cell = tableView.dequeueReusableCellWithIdentifier("ContentCell", forIndexPath: indexPath)
        var contentCell = cell as? ContentCell
        if contentCell == nil {
            contentCell = …
Run Code Online (Sandbox Code Playgroud)

uiwebview uitableview ios autolayout swift

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

仅映射非零值

我正在使用像这样的可用json初始化器将一些json序列化为对象:

 sections = {
        let sectionJsons = json["sections"] as! [[String:AnyObject]]
        return sectionJsons.map {
            DynamicSection($0)
        }
    }()
Run Code Online (Sandbox Code Playgroud)

DynamicSection的init:

init?(_ json:[String:AnyObject]) {
    super.init()
    //Boring stuff that can fail
Run Code Online (Sandbox Code Playgroud)

我只想将传递init的DynamicSections附加到section.我怎么能做到这一点?

可以filter+ map喜欢

return sectionJsons.filter { DynamicSection($0) != nil }.map { DynamicSection($0)! }
Run Code Online (Sandbox Code Playgroud)

但这导致两次启动DynamicSection,我想避免.有没有更好的方法来做到这一点?

swift

10
推荐指数
2
解决办法
4791
查看次数

自动更正气泡的位置不正确

我正在构建一个基于Web的本机聊天,我遇到了一些自动更正建议气泡的问题.

如下图所示,建议放在键盘下方.

在此输入图像描述

该视图是一个React webapp WKWebView,只有导航栏是本机的.webview底部受限于键盘顶部.我用这个黑客删除输入附件.

有没有办法强制将建议气泡放在输入文本字段的上方而不是下方?

ios wkwebview

8
推荐指数
0
解决办法
189
查看次数

Camera.app 使用什么 AVCaptureDevice?

我的应用程序中有一个相机。它已经按照大量文档进行了仔细的实现,但它仍然有一个主要的烦恼;视野明显小于普通相机应用程序。这是在大约相同距离处拍摄的两张屏幕截图,以供参考。我的应用程序位于右侧,显示来自相机的整个预览流。

在此输入图像描述

Apple 文档建议使用AVCaptureDevice.defaultAVCaptureDevice.DiscoverySession,我的应用程序使用前者;

AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了许多不同的捕获设备,但没有一个能够为我提供与库存相机应用程序相同的宽预览。

我究竟做错了什么?

avfoundation ios swift

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

将索引视图移至选项卡视图中的主页指示器上方

我遇到了 SwiftUI 的一个恼人的问题。我有一个水平寻呼机,其垂直滚动视图为页面。它的定义很简单,

TabView(selection: $selected) {
    ForEach(focus!.list.things) { thing in
        FullView(thing: thing).tag(thing)
    }
}
.tabViewStyle(.page(indexDisplayMode: .always))
.indexViewStyle(.page(backgroundDisplayMode: .always))
Run Code Online (Sandbox Code Playgroud)

struct FullView: View {
    let thing: Thing
    
    var body: some View {
        ScrollView {
            VStack {
                ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会产生一个符合我要求的视图,只是它没有一直到达主页指示器下方。

我可以通过添加.ignoresSafeArea(edges: .bottom)到 来解决这个问题TabView,但这会产生另一个令人不快的结果,页面指示器与主页指示器发生冲突。


是否有任何合理的方法可以实现全高度垂直滚动,同时将索引页指示器保持在主页指示器上方?

重现问题的代码:

struct ContentView: View {
    @State var isSheetUp = false
    
    var body: some View {
        Button("Present") {
            isSheetUp.toggle()
        }
        .sheet(isPresented: $isSheetUp) {
            Sheet()
        }
    }
    
    struct Sheet: View {
        var body: …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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