小编Ade*_*aer的帖子

UITableView 单元格不会在 iPhone X 上从屏幕的边缘延伸到边缘,在 iOS 11 上将 insetsContentViewsToSafeArea 设置为 false

在我的应用程序中,我有一个 tableView。

我希望我的应用程序以横向模式在 iPhone X 上运行良好,并且我的 tableView 单元格可以扩展到屏幕的边缘。我看了这个:WWDC 视频,描述了如何在横向中将 tableView 适配到 iPhone X。

当我self.tableView.insetsContentViewsToSafeArea = false在我的viewDidLoad()方法中设置时,它在横向模式下对我的 tableView 没有影响(它靠在安全区域上,正如你在屏幕截图上看到的那样,但它应该从一个边缘延伸到另一个边缘,self.tableView.insetsContentViewsToSafeArea 设置为错误的)。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在调试视图层次结构中,我看到我的 tableView 靠在安全区域,但在 WWDC 视频中,它描述了如何在 iPhone X 上调整 tableView,tableView 靠在屏幕边缘。我想达到 WWDC 视频中显示的相同结果。

我什至尝试添加cell.backgroundView?.backgroundColor = UIColor.blue但它没有帮助,因为显然我的 tableView 靠在安全区域而不是屏幕边缘。

在此处输入图片说明

我希望我的 tableview 将单元​​格从边缘扩展到边缘,如 WWDC 视频中所示:https : //developer.apple.com/videos/play/fall2017/201/

在此处输入图片说明

但我无法做到这一点,不知道为什么。就我而言,tableView 单元格始终不会超出安全区域。有些东西阻止它被扩展,但我不知道是什么。我在我的应用程序中使用来自 xib 的自定义单元格。您还可以注意到 tableView 顶部的黄色 topView。这不是标题,这是另一个视图,但我不确定这个视图是否会导致单元格延伸到边缘的问题。

我正在使用 iOS 11 和最新的 XCode。我将不胜感激任何可以帮助我解决此案例的帮助和任何解决方案。

uitableview ios autolayout ios11 iphone-x

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

是否有一种简单的方法可以检查用户在 App Store 上的订阅状态,或者唯一的方法是进行收据和订阅验证?

有谁知道在应用程序加载时检查用户是否已经购买订阅的简单方法?

我只需要检查用户是否已经购买了订阅,不需要其他任何东西。看起来很容易,但实际上并不容易,因为我需要验证收据并检查订阅日期......订阅验证技术似乎不是一件容易的任务,我没有找到好的教程或好的指南描述了如何逐步实施它。我在这里阅读了Apple文档 是否有任何简单的本地收据验证和订阅验证技术来检查用户是否订阅?

也许有人知道一个框架或一种快速完成它的方法?任何帮助表示赞赏。

使用:Swift 4、Xcode 9.4

subscriptions subscription storekit ios swift

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

当List填充数组时,如何在SwiftUI中获取List中元素的索引?

在我的 SwiftUI 应用程序中,我有一个项目列表。

我正在使用 MenuItems 数组来填充列表

struct MenuItem: Identifiable, Equatable {
                    var id = UUID()
                    var text: String
}

struct MenuView: View {

var menuItems = [MenuItem(text:"Text1"),MenuItem(text:"Text2")]

                 var body: some View {

                  List {

                                ForEach(menuItems) {textItem in

                   Text(textItem.text)

             }

        }

        }

    }
Run Code Online (Sandbox Code Playgroud)

问题是,如何获取textItem的索引呢?

例如,如果我想为奇数行和偶数行设置不同的行颜色,或者如果我需要为数字 3 的行实现不同的样式?

在 SwiftUI 中获取列表中项目的索引的最佳方法是什么?

swift swiftui swiftui-list

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

当用户点击 SwiftUI 中的列表行时如何显示警报

当用户在 SwiftUI 中点击列表中的行时,显示包含该行数据的警报的最佳方式是什么?

我正在使用此代码。

import SwiftUI

struct ContentView: View {

    var testData = ["One","Two","Three"]

    var body: some View {

        List{
            ForEach(testData, id: \.self) { item in
                Text(item).onTapGesture {

                    if item == "One" {

                        print("One selected")

                        print("NEED TO SHOW THE ALERT HERE")

                    }

                }
            }

        }

    }

}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过这种方式解决问题:

import SwiftUI

struct ContentView: View {

    @State private var showingAlert = false

    var testData = ["One","Two","Three"]

    var body: some …
Run Code Online (Sandbox Code Playgroud)

alert ios swift swiftui swiftui-list

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

如何在UITextfield中禁用UIMenuController的复制和定义UIMenuItems

我正在实施自定义UIMenuController并试图找出答案.我怎样才能合法地禁用"复制"和"定义"的UIMenuItems UIMenuControllerUITextfield?Textfield不可编辑.我尝试使用以下命令禁用"复制":

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{
   if (action == @selector(copy:))
    {
        return NO;
    }

    return [super canPerformAction:action withSender:sender];
}


- (IBAction)tapTextViewGesture:(id)sender {

  UIMenuItem *myItem1 = [[UIMenuItem alloc] initWithTitle:@"myItem1" action:@selector(myItem1Pressed:)];
  UIMenuItem *myItem2 = [[UIMenuItem alloc] initWithTitle:@"myItem2" action:@selector(myItem2Pressed:)];
  UIMenuItem *myItem3 = [[UIMenuItem alloc] initWithTitle:@"myItem3" action:@selector(myItem3Pressed:)];

    // Access the application's shared menu
    UIMenuController *menu = [UIMenuController sharedMenuController];

    [menu setMenuItems:[NSArray arrayWithObjects:myItem1,myItem2,myItem3, nil]];

    CGRect menuRect = CGRectMake(20, 50, 200, 0);


    // Show the menu from the cursor's position
    [menu setTargetRect:menuRect inView:self.view]; …
Run Code Online (Sandbox Code Playgroud)

objective-c uimenucontroller ios uimenuitem ios8

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

如何在自定义UIView中正确嵌入WKWebView?

在我的项目中,我有一个视图控制器,我想在其他UIView中嵌入WKWebView,这个UIView名为viewForEmbeddingWebView,我在故事板中创建了(图片中的灰色).

在我的View控制器中标题为viewForEmbeddingWebView的灰色视图

我在ViewController中实现了这个逻辑:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate  {

    var webView: WKWebView!

    @IBOutlet weak var viewForEmbeddingWebView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        webView = WKWebView(frame: viewForEmbeddingWebView.frame, configuration: WKWebViewConfiguration() )
        self.viewForEmbeddingWebView.addSubview(webView)
        self.webView.allowsBackForwardNavigationGestures = true
        let myURL = URL(string: "https://www.apple.com")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

    }

}
Run Code Online (Sandbox Code Playgroud)

在Simulator中构建并运行后,我看到以下内容: 运行我的代码后

它显示了WKWebView但边界看起来不对(第一种:它不适合viewForEmbeddingWebView的边界,第二种:顶部有一个白色间隙).我已经读过我必须在苹果网站https://developer.apple.com/reference/webkit/wkwebview上使用WKWebView,但他们的例子不是我的情况,因为他们只展示如何处理加载WKWebView的情况ViewController的整个视图.但我需要将它嵌入到另一个视图中,因为我以后还需要另一个ui围绕这个WKWebView.在WKWebView之前有WebView,但是自iOS 8出现以来我们必须使用WKWebView.请帮助,因为我检查了很多材料,但没有找到适合Swift 3和Xcode 8的答案.

我在iOS 10.2中使用Xcode 8和Swift 3.

swift wkwebview wkwebviewconfiguration swift3 xcode8

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

如何在可可中的 NSView 中移动 NSImageView?

在我的 Mac OS 应用程序中,我需要一个功能,以便在此 NSImageView 中发生 mouseDown 事件(由用户触发)后能够在 NSView 内移动 NSImageView。当用户触发 mouse Up 事件时,此视图必须移动到最后一个 mouseDrag 事件方向并停留在那里。在移动过程中,我希望 NSImageView 在屏幕上可见(它应该与鼠标光标一起移动)。

我已经阅读了 Apple 的处理鼠标事件指南,https: //developer.apple.com/library/content/documentation/Cocoa/Conceptual/EventOverview/HandlingMouseEvents/HandlingMouseEvents.html 另外我下载了这个示例代码:https: //developer.apple.com/library/content/samplecode/DragItemAround/Introduction/Intro.html

两个链接都包含 Objective C 中的代码。 DragItemAround 的代码已过时。我尝试在 GitHub 和其他 StackOverflow 线程上搜索解决方案,但没有找到任何有效的解决方案。

很高兴听到这个问题的答案。我正在使用 Swift 3。

我使用以下代码创建了一个自定义 MovableImageView,它是 NSImageView 的子类:

import Cocoa

class MovableImageView: NSImageView {

    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        // Drawing code here.
        // setup the starting location of the
        // draggable item

    }

    override func mouseDown(with event: NSEvent) {
        Swift.print("mouseDown")

        //let window …
Run Code Online (Sandbox Code Playgroud)

cocoa nsevent nsview nsimageview swift

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