小编Mar*_*uch的帖子

用avcapturesession切换相机

在这里使用本教程:http://www.musicalgeometry.com/? p = 1297我使用AVCaptureSession创建了自定义叠加和图像捕获.

我试图让用户在前后摄像头之间切换.这是我在CaptureSessionManager中切换摄像头的代码:

- (void)addVideoInputFrontCamera:(BOOL)front {
    NSArray *devices = [AVCaptureDevice devices];
    AVCaptureDevice *frontCamera;
    AVCaptureDevice *backCamera;

    for (AVCaptureDevice *device in devices) {

        //NSLog(@"Device name: %@", [device localizedName]);

        if ([device hasMediaType:AVMediaTypeVideo]) {

            if ([device position] == AVCaptureDevicePositionBack) {
                //NSLog(@"Device position : back");
                backCamera = device;
            }
            else {
                //NSLog(@"Device position : front");
                frontCamera = device;
            }
        }
    }

    NSError *error = nil;

    if (front) {
        AVCaptureDeviceInput *frontFacingCameraDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:frontCamera error:&error];
        if (!error) {
            if ([[self captureSession] …
Run Code Online (Sandbox Code Playgroud)

ios avcapturesession front-camera

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

用于文本字段输入的Swift UIDatePicker - 如何使UIDatePicker消失?

这是我第一次尝试Swift或iPhone应用程序,所以不用说我不知道​​如何在这一点上做很多事情.

现在我有一个带有文本字段和按钮的视图控制器.我已经设法找到示例代码几乎完成我需要的东西.我想做以下事情:

  1. 当我点击进入文本字段时,屏幕上会出现一个UIDatePicker.
  2. 将UIDate选取器设置为仅显示时间 - 而不是日期.
  3. 将选定的UIDatePicker时间放在文本字段中.
  4. 点击按钮后,UIDatePicker会消失.

1到3正在工作.但我无法弄清楚如何让UIDatePicker消失,如果再次点击进入文本字段,仍然会回到屏幕上.

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var dateField: UITextField!

    @IBAction func dateField(sender: UITextField) {

        var datePickerView  : UIDatePicker = UIDatePicker()
        datePickerView.datePickerMode = UIDatePickerMode.Time
        sender.inputView = datePickerView
        datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)

    }
    @IBAction func DoneButton(sender: UIButton) {

        //How to make datepicker disappear???
    }

    func handleDatePicker(sender: UIDatePicker) {
        var timeFormatter = NSDateFormatter()
        timeFormatter.dateStyle = .NoStyle
        timeFormatter.timeStyle = .ShortStyle
        dateField.text = timeFormatter.stringFromDate(sender.date)
    }

    override func viewDidLoad() {
     super.viewDidLoad()
     // Do any …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

如何防止iOS 13中的uinavigationbar和视图之间出现间隙?

当前在iOS 13中使用模式演示时,导航栏的大小存在问题。

在大多数情况下,此效果很好,如以下屏幕截图所示:

但是,在一些屏幕中,我们会得到这种怪异的效果,导航栏的高度较低,并且与视图之间的怪异的“透视”间隙。如该屏幕截图所示:

这两个视图控制器都为其属性设置了相同的值,以模态表示,并且在其子视图上具有相同的约束(与Superview / margins / top布局指南的间距为0)。

即使使用iOS 13 SDK构建,此问题在iOS 12中也不会发生。这是iOS 13(测试版8)中的已知问题,还是我们应该在代码/故事板上进行一些调整?

uinavigationbar storyboard uikit ios xamarin

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

iOS 13-如何登录应用内购买沙盒帐户?

为了使用iOS 13测试我的应用内购买,我已将其中一台测试设备更新为iOS 13.1 beta。

在iOS 12上,在我之前有一个特殊的Sandbox登录Settings/iTunes & App Store/Sandbox Account

但是,在更新到iOS 13之后,此部分丢失。我试图按照iOS 12上类似问题的答案中说明进行操作,但没有任何效果。我完全搁置了设备,并在Settings/iTunes & App Store和退出了Settings/Apple ID该设备,因此当前该设备未连接到任何帐户(真实帐户或沙箱)。至少据我所知。

我已使用Xcode 11 beta在设备上重新安装了我的应用程序,并尝试执行应用程序内购买。商店显示一个登录提示,表明这是一个沙盒购买。但是,提示仅要求输入密码,而不要求用户名或Apple ID。因此,我不知道在此应使用哪个帐户。

使用新创建的测试用户帐户的密码时,密码未知。我可以使用我的真实Apple ID帐户的密码,该密码在设备设置过程中使用过,但已断开连接。

那么,如何连接到iOS 13中的特定沙盒帐户?

in-app-purchase ios appstore-sandbox ios13

14
推荐指数
7
解决办法
1143
查看次数

将 SwiftUI 按钮动作中的 tapAction 发送到 UIView 函数

我试图找到一种方法来触发一个动作,UIView当一个按钮被点击时,它会在我的里面调用一个函数swiftUI

这是我的设置:

foo()(UIView)需要在Button(SwiftUI)被点击时运行

我使用 AVFoundation 框架的自定义 UIView 类

class SomeView: UIView {

    func foo() {}
}
Run Code Online (Sandbox Code Playgroud)

要在 swiftUI 中使用我的 UIView,我必须将它包裹起来 UIViewRepresentable

struct SomeViewRepresentable: UIViewRepresentable {

    func makeUIView(context: Context) -> CaptureView {
        SomeView()
    }

    func updateUIView(_ uiView: CaptureView, context: Context) {        
    }
}
Run Code Online (Sandbox Code Playgroud)

承载我的 UIView() 的 SwiftUI 视图

struct ContentView : View {

    var body: some View {
        VStack(alignment: .center, spacing: 24) {
            SomeViewRepresentable()
                .background(Color.gray)
            HStack {
                Button(action: {
                    print("SwiftUI: Button tapped")
                   // Call …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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

在Swift中以编程方式将UIGestureRecognizer添加到子视图

我目前有一个子视图,它创建并添加到ViewDidLoad()中的UIView中.我正在尝试使用UIGestureRecognizers来检测点击并取消隐藏特定按钮.我目前的代码:

 override func viewDidLoad() {
    super.viewDidLoad()
    architectView = CustomClass(frame: self.view.bounds)
    self.view.addSubview(architectView)        
    let gestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTap:")
    gestureRecognizer.delegate = self
    architectView.addGestureRecognizer(gestureRecognizer)
}

func handleTap(gestureRecognizer: UIGestureRecognizer) {
    let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil))
    self.presentViewController(alert, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

handleTap()函数是一个简单的测试,用于查看是否正在识别抽头.按下时,此代码不会触发UIAlert?我错过了什么?

iphone uiview uigesturerecognizer ios swift

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

UIWindow 没有为新设备填充屏幕?

我正在使用一个大约有 7/8 年历史的旧 Xcode 项目,我已将其迁移到 Objective-C 2.0 并支持 ARC。在我开始工作之前,该项目不支持自动布局(这是在发布之前)。我设法清除了在更现代的 Xcode IDE (10.2.1) 中运行它时遇到的许多错误/问题。出于测试目的,我已将此代码实现到AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)];
[self.window setBackgroundColor:[UIColor redColor]];

self.window.rootViewController = [UIViewController new];
[self.window makeKeyAndVisible];

return YES;
}
Run Code Online (Sandbox Code Playgroud)

这出于某种原因给了我这个:

这是当我在 iPhone X、iPhone XR 或 iPhone XS Max 上运行时的结果,看起来屏幕的顶部和底部边缘(安全区域)没有被拾取。当我调试视图层次结构时,它们也没有被选中,它只显示红色空间?当我将此代码放入新项目时,它工作正常并填满所有空间。我想知道因为这是一个旧项目,所以可能有一个构建设置限制了UIWindow扩展以允许支持新设备?

另外作为旁注,我确保该UIWindow对象没有在其他地方被操纵。

xcode objective-c uiwindow ios appdelegate

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

虚线边框UIImageView swift

我正在尝试在UIImageView上使用CALayer添加虚线边框.我找到了一个方法,但是在swift工作,我怎么能把它转换成swift?o有另一个带有边框的imageView,这将是使用CALayer的最佳解决方案,所以它们看起来相似吗?我怎样才能获得这个

obj-c代码快速?

- (CAShapeLayer *) addDashedBorderWithColor: (CGColorRef) color {
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];

    CGSize frameSize = self.size;

    CGRect shapeRect = CGRectMake(0.0f, 0.0f, frameSize.width, frameSize.height);
    [shapeLayer setBounds:shapeRect];
    [shapeLayer setPosition:CGPointMake( frameSize.width/2,frameSize.height/2)];

    [shapeLayer setFillColor:[[UIColor clearColor] CGColor]];
    [shapeLayer setStrokeColor:color];
    [shapeLayer setLineWidth:5.0f];
    [shapeLayer setLineJoin:kCALineJoinRound];
    [shapeLayer setLineDashPattern:
    [NSArray arrayWithObjects:[NSNumber numberWithInt:10],
    [NSNumber numberWithInt:5],
  nil]];
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:shapeRect cornerRadius:15.0];
    [shapeLayer setPath:path.CGPath];

    return shapeLayer;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimageview ios swift

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

在Swift中检测CAShapeLayer上的点击?

我对iOS开发很新(所以请原谅我的无能 - 我到处寻找!),并且正在寻找一种方法来检测点击CAShapeLayer.到目前为止,我遇到过hitTest.是hitTest最好的方法,如果是这样的话,如何在Swift中使用它,尤其是CAShapeLayers?另外,如果我有很多CAShapeLayers,我如何使用hitTest方法单独引用它们?

这就是我创建CAShapeLayer的方法:

    let newBounds = CGRect(x: 0, y: 0, width: 200, height: 200)
    let newShape = CAShapeLayer()
    newShape.bounds = newBounds
    newShape.position = view.center
    newShape.cornerRadius = newBounds.width / 2
    newShape.path = UIBezierPath(ovalInRect: newShape.bounds).CGPath

    newShape.lineWidth = 42
    newShape.strokeColor = UIColor(red: 222/255.0, green: 171/255.0, blue: 66/255.0, alpha: 1.0).CGColor
    newShape.fillColor = UIColor.clearColor().CGColor

    newShape.strokeStart = 0.2
    newShape.strokeEnd = 0.4

    view.layer.addSublayer(newShape)
Run Code Online (Sandbox Code Playgroud)

cashapelayer ios swift

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

UISplitViewController:DetailViewController 中的 titleView 在横向上消失,预期行为?

我在titleView导航栏中添加了一个navigationItem.titleView用于 Master/Detail VC的自定义。在将设备的方向更改为横向时,titleViewMasterViewController工作正常,但DetailViewController titleView消失。在将方向更改回纵向时titleView出现DetailViewController。我还附上了源代码和视频的链接。

这是有意的行为还是我犯了错误,还是苹果方面的问题?

//Custom Title View:
class TitleView: UIView {
    override func sizeThatFits(_ size: CGSize) -> CGSize {
        return CGSize(width: 50, height: 20)
    }
}

class DetailViewController: UIViewController {
    override func viewDidLoad() {
       super.viewDidLoad()
       //Adding titleView for Master/Detail VC:
       navigationItem.titleView = {
            //Setting frame size here, did not make any difference
            let view = TitleView(frame: .zero)
            view.backgroundColor = .red
            return view
       }()
    }
} …
Run Code Online (Sandbox Code Playgroud)

uikit uisplitviewcontroller ios swift

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