小编Jas*_*ady的帖子

在Swift 3.0中使用NSData获取核心数据

所以以前,在Swift 2.2中我可以使用 Entity.image = UIImagePNGRepresentation(UIImage(named: "Image Name")!)

但现在在Swift 3.0中,似乎我们现在必须使用额外的步骤.Entity.image = NSData(data: UIImagePNGRepresentation(UIImage(named: "Image Name")!))或者相当于的对象UIImage(name: "Image Name")

是否有雨燕3.0一种新的方式,从去UIImageNSData

uiimage nsdata ios swift3 ios10

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

在swift中显示更多按钮时,取消在tableview单元格上向左滑动

我想知道是否有一种正确的方法来取消在tableview单元格上留下的滑动,以便它向后滑动以隐藏按钮.我真的不确定如何正确地说出来,哈哈.但请参阅下面的GIF.在第一个GIF中,按下取消按钮后没有代码,按钮保持可见.

在此输入图像描述

我唯一的想法就是用这段代码重新加载单元格self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)但是这样可以看出按钮向上移动,而我更喜欢看起来单元格移位到右边的位置.请参阅下面的重新加载GIF.

在此输入图像描述

我该怎么做呢?请参阅下面的我添加按钮的代码及其功能.

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    let edit = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit") {
        (action, indexPath) in

        if (indexPath == self.indexSelect) {
            print("Editting Selected Cell")
        } else {
            print("Editting a difference cell than selected")
        }

        let section: Sections = self.frc.objectAtIndexPath(indexPath) as! Sections
        let count: Int = self.sectionCount(section.section!)
        var msg: String?
        let sectionName: String = section.section!

        if (count > 0) {
            msg = "There are \(count) other Items using this …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift

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

自定义展开Segue期间导航栏为黑色

我做了一个习惯UIStoryboardSegue,但当它解开时,它似乎导致我UINavigationBar变黑,然后回到它的正确颜色.请参阅下面的GIF.

在此输入图像描述

我的自定义segue只是让新的ViewController从顶部下来,然后返回到顶部.

这是UIStoryboardSegue代码:

import UIKit

class SlideDownSegue: UIStoryboardSegue {

var duration: Double = 0.5

override func perform() {

    let screenHeight = UIScreen.main.bounds.size.height
    let toVC = self.destination
    let fromVC = self.source

    toVC.view.transform = CGAffineTransform(translationX: 0, y: -screenHeight)
    UIApplication.shared.keyWindow?.insertSubview(toVC.view, aboveSubview: fromVC.view)

    UIView.animate(withDuration: duration, delay: 0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
        toVC.view.transform = CGAffineTransform.identity
    }, completion: {
        success in
        fromVC.present(toVC, animated: false, completion: nil)
    })
}
}

class UnwindSlideDownSegue: UIStoryboardSegue {

override func perform() {

    let screenHeight = …
Run Code Online (Sandbox Code Playgroud)

uinavigationbar uistoryboardsegue swift4 ios11 xcode9

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

在 SwiftUI 中启动屏幕图像拉伸

我希望我能得到一些帮助来解释为什么会发生这种情况。我一直在努力将我一直在学习/构建的应用程序从 UIKit 切换到 SwitfUI,因为这似乎是未来......而且学习起来很有趣。

我有我的 plist 设置与背景和图像 在此处输入图片说明

当模拟器打开或清除并擦除模拟器时,我第一次运行它是这样的: 在此处输入图片说明

但是,每次运行应用程序后,图像都会拉伸。 在此处输入图片说明

当我在手机上尝试时,它似乎每次都会拉伸。我不确定这里发生了什么。只是 SwiftUI 需要更多工作还是我缺少某个设置?

xcode ios launch-screen swiftui

7
推荐指数
3
解决办法
1214
查看次数

使用用户定义的运行时属性的UIView阴影

当我使用"用户定义的运行时属性"时,我很难显示阴影.

如果我使用代码,它似乎完全正常,如下所示.

func formatView(view: UIView, cornerRadius: Bool) {

    if (cornerRadius) {view.layer.cornerRadius = 12 }
    view.layer.shadowColor = UIColor.black.cgColor
    view.layer.shadowOffset = CGSize.zero
    view.layer.shadowRadius = 3
    view.layer.shadowOpacity = 0.3
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用用户定义的运行时属性尝试它时,它不再显示.这些是我目前正在使用的.

在此输入图像描述

唯一奇怪的是,如果我删除layer.shadowColor属性,那么它似乎再次起作用.但我无法控制颜色.它似乎默认为黑色,但如果我决定选择灰色,我将无法改变它.

这是因为Color属性是UIColor而shadowColor需要CGColor吗?

swift3 ios10 xcode8

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

将具有自己参数的 SwiftUI 视图作为变量传递给另一个视图结构

我将尝试在这里概述我的案例,我想NavigationLink将其变成它自己的结构,以便我可以重新使用它。我使用的所有案例的内部都是相同的,只是文本和图像不同LabelNavigationLink我正在尝试使包含 的新结构NavigationLink具有我用于 的目标视图的参数NavigationLink

我发现这个链接帮了我大部分忙,但我似乎无法完成最后一英里。

如何将一个 SwiftUI View 作为变量传递给另一个 View 结构

这是我制作的可重用NavigationLink结构:

struct MainMenuButtonView<Content: View>: View {
    
    var imageName: String
    var title: String
    var description: String
    var content: Content
    
    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content()
    }
    
    var body: some View {
        VStack {
            NavigationLink(destination: content) {
                Image(imageName)
                    .resizable()
                    .frame(width: 100, height: 100)
                Text(title)
                    .font(.title)
                Text(description)
                    .foregroundColor(Color(UIColor.systemGray2))
                    .multilineTextAlignment(.center)
                    .font(.footnote)
                    .frame(width: 175)
            }
            .buttonStyle(PlainButtonStyle())
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-navigationlink

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

在 SwiftUI 中从表单中删除分隔线

我有一个在 SwiftUI 中创建的静态表(或 SwiftUI 中的表单),我对每个表的工作方式感到满意,除了分隔两个静态单元格的线之外。见下图。

在此输入图像描述

我尝试了几种方法,但似乎没有任何效果。你可以看到他们在那里被注释掉了。

struct Settings_CheckedView: View {
    
    @Environment(\.managedObjectContext) private var viewContext
    @Environment(\.settings) private var settings
    
    @State private var picker1 = 2
    @State private var picker2 = 2
    
    //Tried this first, doesn't seem to affect it.
    /*init() {
        UITableView.appearance().separatorStyle = .none
    }*/
    
    var body: some View {
        Form {
            Section(header: Text("COMPLETED ITEM BEHAVIOR")) {
                VStack {
                    HStack {
                        Text("Auto-Delete Completed Items")
                        Spacer()
                    }
                    Picker("", selection: $picker1) {
                        Text("Off").tag(0)
                        Text("Immediately").tag(1)
                        Text("Delay").tag(2)
                    }
                    .pickerStyle(SegmentedPickerStyle())
                    .onChange(of: picker1, perform: { value in …
Run Code Online (Sandbox Code Playgroud)

forms xcode swiftui

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

在Swift中布局后获取UIScrollView的高度

我有一种情况,我正在使用UIScrollView来帮助使用较小手机的用户查看窗口内的全文.我想要显示一个图像图标,如果他们需要滚动(只是为了让他们知道窗口内有更多)但我在使用Swift找到滚动视图的高度时遇到了问题.

这是我的对象的层次结构

在此输入图像描述

基本上,这4个标签适合4.7"iPhone而不是4"iPhone.我尝试设置一些逻辑来检查UIScrollView内容是否大于窗口,但它似乎没有工作.我一直认为高度为零.

我使用scrollHeight = scrollView.contentSize.height,并试图把那里面viewDidLoad(),viewWillAppear()viewDidLayoutSubviews()但每次它最终被0.

contentSize我应该用它来检查高度是正确的吗?

uiscrollview swift3 xcode8

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