小编Ger*_*eon的帖子

当showsScopeBar = YES时,iOS8上的UISearchBar高度

我正在使用UISearchBar我的应用程序showsScopeBar=YES.当在iOS8下运行时(在模拟器和设备上),范围栏被隐藏,搜索栏的高度保持在44而不是预期的88.使用Xcode 6中的新视图调试器我可以看到范围栏实际上是目前,但仍然隐藏在文本字段后面.

到目前为止我找到的唯一方法是手动将搜索栏的高度设置为88,这当然是一个可怕的黑客.

我错过了一些记录不兼容的内容,或者这是一个错误?

uisearchbar ios ios8

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

尝试结合2个Audiokit示例:MicrophoneAnalysis和Recorder:当我记录时崩溃

我正在尝试结合MicrophoneAnalysis和Recorder示例.它一直在崩溃try recorder.record.

2018-01-08 21:21:48.507019-0800音乐练习[90266:18761122] [avae] AVAEInternal.h:70:_AVAE_Check:必需条件为false:[AVAEGraphNode.mm:804:CreateRecordingTap:(nullptr == Tap( ))2018-01-08 21:21:48.527443-0800音乐练习[90266:18761122] *由于未捕获的异常'com.apple.coreaudio.avfaudio'终止应用程序,原因:'必需条件为false:nullptr == Tap()'*第一次抛出调用堆栈:

// -----------

import AudioKit

import AudioKitUI

import UIKit

class SecondViewController: UIViewController {

    @IBOutlet private var inputPlot: AKNodeOutputPlot!
    @IBOutlet weak var tempViewForRecordingAndPlay: UIView!
    @IBOutlet weak var outputWavePlot: AKOutputWaveformPlot!

    // for microphone Analysis
    @IBOutlet weak var frequencyLabel: UILabel!
    @IBOutlet weak var amplitudeLabel: UILabel!
    @IBOutlet weak var noteNameWithSharpsLabel: UILabel!
    @IBOutlet weak var noteNameWithFlatsLabel: UILabel!
    @IBOutlet private var audioInputPlot: EZAudioPlot!


    var micMixer: AKMixer!
    var recorder: AKNodeRecorder!
    var player: …
Run Code Online (Sandbox Code Playgroud)

ios audiokit

13
推荐指数
1
解决办法
645
查看次数

iOS7与iOS6中的UISlider行为

我注意到iOS7中的UISlider与iOS 6和iOS 5中的UISlider行为不同:

假设您有一个min = 0和max = 10的滑块,当前值为0.当您第一次触摸"旋钮"时,将发送一个valueChanged消息,其中slider.value = 0.269(而不是预期的0)并且旋钮移动走向中间.通常,触摸滑块将其移向中间值(在此示例中为5),距离当前中间越远,移动的越多.

所有这一切都没有发生在iOS6中,我想恢复旧的行为,但不知道如何实现这一点.

uislider ios

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

UICollectionView:组合布局禁用预取?

我有一个非常简单的方法UICollectionView,它使用组合布局来轻松实现动态单元格高度。不幸的是,这样做似乎禁用了使用UICollectionViewDataSourcePrefetching. 在以下示例代码中,该collectionView(_:prefetchItemsAt:)方法仅在初始显示集合视图时调用一次。没有滚动操作会导致对方法的进一步调用。

我该怎么做才能使预取工作?

class ViewController: UIViewController, 
    UICollectionViewDataSource,
    UICollectionViewDelegate,
    UICollectionViewDataSourcePrefetching
{
    @IBOutlet var collectionView: UICollectionView!

    override func viewDidLoad() {
        super.viewDidLoad()

        collectionView.collectionViewLayout = createLayout()
        collectionView.dataSource = self
        collectionView.delegate = self
        collectionView.prefetchDataSource = self
        collectionView.register(MyCell.self, forCellWithReuseIdentifier: "cell")
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 100
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! MyCell
        cell.label.text = String(repeating: "\(indexPath) ", count: indexPath.item) …
Run Code Online (Sandbox Code Playgroud)

prefetch ios uicollectionview swift

9
推荐指数
1
解决办法
995
查看次数

如何从之前的应用版本中删除Settings.bundle?

我的iPad应用程序当前使用Settings.bundle来允许通过内置的Settings.app以及InAppSettingsKit进行设置.我现在想完全切换到IASK并禁用内置设置.我已将Settings.bundle文件夹重命名为InAppSettings.bundle,但是当我将此新版本部署到我的测试设备时,旧的设置数据似乎仍然存在 - 至少,我仍然可以通过Settings.app访问旧设置.

有没有办法在安装新版本的应用程序时强行删除Settings.bundle?

ios settings.bundle inappsettingskit

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

使用 Swift 4 在应用程序中保存/加载文件

我的应用程序需要创建文件(例如 .txt 文件)和目录来对该文件进行编目,这些文件必须存储在手机中。运行该应用程序,我将创建一个特定目录和一个将在内部保存的特定 .txt 文件。

我来自 Android Studio,这样做很简单,但在 Swift 上我找不到方法。

我试试这个:

// Save data to file
let fileName = "Test"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
Run Code Online (Sandbox Code Playgroud)

如果应用程序在启动时创建该文件,则该文件可用。

如果我注释这些行并检查该文件是否存在,它就会失败。

有什么建议吗?我想我使用了错误的类,但我找不到其他任何东西。

file-management ios swift

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

如何使用 iOS 13 + Apple On Demand Resources 修复“块的哈希不匹配”错误

在我的应用程序中,我使用 Apple On Demand Resources。

我使用以下代码加载内容:

currentRequest?.beginAccessingResources { (error: Error?) in
  if let error = error {
    onFailure(error as NSError)
    return
  }
  onSuccess()
}
Run Code Online (Sandbox Code Playgroud)

这适用于 iOS 12 和 Xcode 10,但是对于最新的 iOS 13 和 Xcode 11,我收到以下错误:

开始:请求0x0x283c498c0响应:错误:错误域= SZExtractorErrorDomain代码= 4 “块散列不匹配含有偏移0:预期edf8721781dca63db1671ee3f0c7f199,得到621dea3aab25ce02a382f155971034c3” 的UserInfo = {NSLocalizedDescription =散列块失配含有偏移0:预期edf8721781dca63db1671ee3f0c7f199,得到621dea3aab25ce02a382f155971034c3,SZExtractorActualHashValueErrorKey =621dea3aab25ce02a382f155971034c3,SZExtractorFileOffsetErrorKey=0,SZExtractorSourceFileLineErrorKey=470,SZExtractorFunctionNameErrorKey=-[StreamingUnzipState _checkHashForOffset:],SZExtractorHashChunkIndexErrorKey=470

我删除了资产,重新添加了它们,标记了它们,但问题仍然存在。这个错误是什么意思?

xcode swift ios13

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

SwiftUI:显示警报时如何摆脱分段控制文本移动?

在一个小示例 SwiftUI 应用程序中,我有一个设置视图,显示了几个选项选择,实现为分段控件。当出现或解除警报时,这些分段控件中的文本会明显移动。有没有办法摆脱这个故障?

将此粘贴到 Playground 中以重现:

import SwiftUI
import PlaygroundSupport

struct FlickeringSegmentsView: View {
    @State var option = 0
    @State var alerting = false

    var body: some View {
        VStack(alignment: .center, spacing: 120) {
            Picker("options", selection: $option) {
                Text("Option A").tag(0)
                Text("Option B").tag(1)
            }
            .pickerStyle(SegmentedPickerStyle())
            .padding(16)

            Button(action: { self.alerting.toggle() },
                   label: { Text("Show Alert") }
            )
            .alert(isPresented: $alerting) {
                Alert(title: Text("Alert"))
            }
        }
    }
}

PlaygroundPage.current.setLiveView(FlickeringSegmentsView())
Run Code Online (Sandbox Code Playgroud)

uisegmentedcontrol swiftui

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

来自调试器的 XCode 消息:由于信号 9 而终止

我遇到一个问题,当我在模拟器中向上滑动应用程序以关闭时,除非重新运行,否则该应用程序将不会再次打开。我收到错误Message from debugger: Terminated due to signal 9。我查了一下,发现这个问题可能与设备上的 CPU 使用率有关,但我的 CPU 使用率很低。我什至不知道如何开始调试,因为不清楚问题来自何处。我正在获取用户的位置,但我怀疑这是导致问题的原因。我还阅读了一些有关导致此问题的后台任务的信息,但我不确定这是我的问题。我知道这是一个模糊的问题,一旦我能缩小问题可能所在的范围,我很乐意发布代码片段。有谁知道我可以从哪里开始调试?

ios

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

如何在 iOS 共享扩展中获取屏幕截图?

我为我的应用程序创建了一个共享扩展程序,用户可以通过该扩展程序创建带有图像的帖子。当选择并共享“照片”中的任何图像时,它的效果非常好,但是当截取屏幕截图并直接共享时,共享扩展程序无法获取它。

我已经编写了用于获取图像的代码。

-(void)fetchImages {
    for (NSExtensionItem *item in self.extensionContext.inputItems) {

        [item.attachments enumerateObjectsUsingBlock:^(NSItemProvider * _Nonnull itemProvider, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) {
                [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(NSData *image, NSError *error) {
                    // You will get Image data here that you can submit to server.
                    [self showAlertWithMessage:[error localizedDescription]];

                    if(image) {
                        [self saveImage:image atIndex:idx];
                    }
                }];
            }
        }];
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的方法是在viewDidLoad之后调用的。当从“照片”中选择任何图像时,它会显示得很好,但是当在拍摄后立即共享屏幕截图时,我收到错误“无法强制将项目强制为 nsdata 类”。对此的任何帮助我将不胜感激。谢谢。

objective-c ios

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