小编Let*_*ate的帖子

保留图标,从"后退"按钮中删除文本

我想从后退按钮中删除文本,但我想保留图标.我试过了

let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
Run Code Online (Sandbox Code Playgroud)

但是,这会完全删除文本和图标.

xcode ios swift

74
推荐指数
15
解决办法
7万
查看次数

performSegueWithIdentifier没有带标识符的segue

我在测试我的应用时遇到了崩溃.以下图片是我的故事板:

故事板

我在View Controller中有代码:

@IBAction func unwindToHomeScreen(segue:UIStoryboardSegue) {

}
Run Code Online (Sandbox Code Playgroud)

"添加新项目"的视图有一个"取消"按钮,我控制 - 拖动它到顶部的"退出"图标并链接到unwindToHomeScreen,它工作正常.

"添加新项"有一个类AddTableViewController和我在里面写的代码:

@IBAction func save() {
    // Execute the unwind segue and go back to the home screen
    performSegueWithIdentifier("unwindToHomeScreen", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

我控制 - 将"保存"按钮拖动到func,但是当我单击按钮时应用程序崩溃

我可以使用dismissViewControllerAnimated(true, completion: nil),但我只是想知道为什么performSegueWithIdentifier不能工作?

我在dropbox.com/s/hpybgg9x67rtqng/foodpinstatictable.zip?dl=0上阅读了代码并尝试制作一个并使用performSegueWithIdentifier这个例子进行练习,我没有看到她的segue标识符,有什么区别?

xcode ios swift

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

The text doesn't gets wrap in swift UI

Even After setting the .lineLimit(nil) the text doesn't get a wrap.

var body: some View {
    VStack(alignment: .center) {
        Text("SwiftUI is a modern way to declare user interfaces for any Apple platform. ")
            .font(.title)
            .color(.red)
            .lineLimit(nil)
        Text("Create beautiful, dynamic apps faster than ever before.")
            .font(.system(size: 20))
            .lineLimit(nil)
    }.padding(EdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10))
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

ios swift swiftui

13
推荐指数
5
解决办法
3135
查看次数

'didSelectRowAt'没有被调用

我有关于UITableView委托功能的问题didSelectRowAt.一切都很好,但不幸的didSelectRowAt是没有被称为.我读了一些关于这个问题的其他stackoverflow问题,并尝试了一些解决方案,但它们都不适合我.我创建了tableview的子类,它是委托人本人:

class MyTableView : UITableView, UITableViewDelegate{

    override func awakeFromNib() {

        super.awakeFromNib()

        separatorStyle = .none

        backgroundView = nil
        backgroundColor = UIColor.clear

        isScrollEnabled = false

        delegate = self
        isEditing = false
        allowsSelection = true

    }


//    func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
//       
//    this is working        
//
//    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        print("not called")

    }    

} 
Run Code Online (Sandbox Code Playgroud)

所以所有子类都MyTableView将实现数据源的东西,这也很好(如果不知何故会提到这个).

奇怪的是didHighlightRowAt被调用,所以代表以某种方式工作.只有didSelectRowAt我想要的东西没有被召唤.

顺便说一下,没有UITapGestureRecognizer.

可以在某种程度上给我任何建议.有哪些属性是错误的?

uitableview ios swift

7
推荐指数
6
解决办法
4215
查看次数

如何在 swift 中使用 async/await 同时运行多个 API 调用?

根据 Swift 中新的结构化并发,我们可以等待在异步上下文中完成的 API 调用,但我想同时进行多个 API 调用,例如,目前如果一个接一个地添加 API 调用,

profileData = await viewModel.getProfileData()
userCardData = await viewModel.getCardDetails()
Run Code Online (Sandbox Code Playgroud)

上述情况的问题是只有在获取配置文件数据后才获取 CardDetails。

ios async-await swift swift5

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

如何在swiftUI中调整HStack元素之间的间距?

我添加了spacer(minLength:5),但是我可以指定 minlenght 来指定文本之间的间距。我已经附上了一个屏幕截图,以供参考,我想减少内部hstack之间的间距。

HStack {
Image("Rhea").resizable().cornerRadius(25).frame(width: 50.0, height: 50.0)
    VStack(alignment: .leading) {
        Text("How to enjoy your life without money").bold().font(.system(size: 20))
        HStack {
            Text("Lets create")
            Spacer(minLength: 5)
            Text("3K views")
            Spacer(minLength: 5)
            Text("3 hours ago")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

ios swift swiftui vstack hstack

6
推荐指数
3
解决办法
3280
查看次数

如何将UIImage异步加载到SwiftUI图像中?

在SwiftUI中,有一些.init创建图像的方法,但是它们都不允许使用块或任何其他方式从网络/缓存加载UIImage ...

我正在使用Kingfisher从网络加载图像并在列表行中缓存,但是在视图中绘制图像的方法是再次重新渲染它,我不想这样做。另外,在获取图像时,我正在创建一个假图像(仅彩色)作为占位符。另一种方法是将所有内容包装在自定义视图中,然后仅重新渲染包装器。但是我还没有尝试过。

此示例现在正在工作。任何改善当前想法的想法都会很棒

使用加载程序的某些视图

struct SampleView : View {

    @ObjectBinding let imageLoader: ImageLoader

    init(imageLoader: ImageLoader) {
        self.imageLoader = imageLoader
    }

    var body: some View {
       Image(uiImage: imageLoader.image(for: "https://url-for-image"))
          .frame(width: 128, height: 128)
          .aspectRatio(contentMode: ContentMode.fit)
    }

}
Run Code Online (Sandbox Code Playgroud)
import UIKit.UIImage
import SwiftUI
import Combine
import class Kingfisher.ImageDownloader
import struct Kingfisher.DownloadTask
import class Kingfisher.ImageCache
import class Kingfisher.KingfisherManager

class ImageLoader: BindableObject {

    var didChange = PassthroughSubject<ImageLoader, Never>()
    private let downloader: ImageDownloader
    private let cache: ImageCache
    private var image: UIImage? …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

6
推荐指数
4
解决办法
3078
查看次数

从不调用cellForRowAtIndexPath

我有一个包含一个故事板UIViewController具有UITableviewUITableViewCell,一切都正确迷上了,我已经把所有需要的代码的UIViewController。

当我在模拟器中运行应用程序时,cellForRowAtIndexPath永远不会调用数据源功能之一,而是numberOfRowsInSection会调用它

  • 调用“ func tableView(tableView:UITableView,numberOfRowsInSection部分:Int)-> Int”
  • 但是从来没有调用过“ func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)-> UITableViewCell”

下面是我的视图控制器代码:

import UIKit

class DVViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
{

    @IBOutlet var tableView : UITableView?
    var tableData = ["Row 1", "Row 2", "Row 3"]
    let kCellID = "cell"

    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.tableView?.delegate = self;
        self.tableView?.dataSource = self;

        //load cell
        self.tableView?.registerClass(UITableViewCell.self, forCellReuseIdentifier: kCellID);
        self.tableView?.reloadData();
    }

    //MARK: Tableview delegates
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    { …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

'Bool' 在 SwiftUI 中不能转换为 'Binding&lt;Bool&gt;'

我有一个我正在开发的SwiftUI原生 Watch 应用程序。我有一个Combine基础类,它允许我存储 `\userDefaults,其中之一是一个简单的切换。

import SwiftUI  
import Foundation  
import Combine  


class MeetingSetup: BindableObject {  

    let willChange = PassthroughSubject<Void, Never>()  

    var twitterEnabled: Bool = false {  
        didSet {  
            willChange.send()  
        }  
    }  

    init() {  
        let prefs:UserDefaults = UserDefaults(suiteName: "group.com.appname")!  
        twitterEnabled = prefs.bool(forKey: "keyTwitterEnabledBool")  
    }  
} 
Run Code Online (Sandbox Code Playgroud)

SwiftUI我收到Bool无法转换为的错误消息Binding<Bool>

import SwiftUI  
import Combine  

struct SetupView : View {  

    @ObjectBinding var meetingSetup: MeetingSetup = delegate.meetingSetup  

    var body: some View {  

                HStack{  
                    Toggle(isOn: self.meetingSetup.twitterEnabled){  // <== 'Bool' in …
Run Code Online (Sandbox Code Playgroud)

swiftui combine

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

为什么 webview_flutter 在添加到应用程序(iOS)时不起作用?

所以我试图在单击按钮时打开一个简单的网络视图。

这是我的 Scaffold 小部件的主体:

body: 
WebView(
    initialUrl: "https://www.google.com/",
    javascriptMode: JavascriptMode.unrestricted,
)
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我独立运行这个 flutter 项目时,它成功地在 iOS 模拟器中打开了 Webview。但是当我将此 flutter 模块集成到现有的 iOS 应用程序中时,它不起作用(显示空白屏幕)。为了添加颤振模块,我遵循了此链接,模块的其他部分工作正常。

我已经在 flutter 模块的 info.plist 中设置了这个:

<key>io.flutter.embedded_views_preview</key>
<true/>
Run Code Online (Sandbox Code Playgroud)

我在文件中添加了以下版本pubspec.yaml

webview_flutter: ^0.3.22+1
Run Code Online (Sandbox Code Playgroud)

ios flutter flutter-add-to-app flutter-ios webview-flutter

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