小编Ale*_*one的帖子

iOS Swift - 如何以编程方式为所有按钮指定默认操作

我正在开发原型阶段的应用程序.某些界面元素没有通过故事板或以编程方式分配给它们的任何操作.

根据UX准则,我想在应用程序中找到这些"非活动"按钮,并在测试期间点击时显示"功能不可用"警报.这可以通过扩展UIButton来完成吗?

除非通过界面生成器或以编程方式分配其他操作,否则如何为UIButton分配默认操作以显示警报?

user-experience uibutton ios swift

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

RxSwift 如何有条件地控制按钮何时发出点击?

我想阻止我的 UIButtons 发出 RX tap 事件,直到某些控制流表明它已准备就绪。如果控制流恢复为未准备好,我希望再次禁用按钮。控制序列是一个ReplaySubject并且总是有值

我试过了skipUntil,但这是一次性操作——一旦控制序列发出,它就不能回到禁用状态——所有按钮按下都会通过,忽略控制序列

除非其他流具有特定值,否则如何限制 UIButton 发送点击事件?

let enableButtons = configStatusInputSequence
.filter { (configured, ready) -> Bool in
    return configured && ready
}

for button in controlButtons{
    button.rx.tap
        .skipUntil(enableButtons)
        .bind(to: commandOutputSequence)
        .disposed(by: bag)
}
Run Code Online (Sandbox Code Playgroud)

reactive-programming control-flow ios swift rx-swift

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

WatchOS5 - WCSessionFileTransfer 的“无法加载文件传输结果”

我正在尝试将 2 个文件发送到我的 Apple Watch 应用。它最初有效,但现在我在控制台中打印了 2 个错误。

WCSession.default.transferFile(fileURL1, metadata: ["name":"first"])
WCSession.default.transferFile(fileURL2, metadata: ["name":"second")
Run Code Online (Sandbox Code Playgroud)

谁在打印错误 - 是我 iPhone 上的测试应用程序吗?

我可以按顺序传输 2 个文件,还是有限制 - 我需要等待第一个传输完成吗?

2018-11-18 11:05:53.010374-0500 SimpleWatchConnectivity[836:23347] [WC] -[WCFileStorage enumerateFileTransferResultsWithBlock:] 无法在路径 /var/mobile/Containers/Data/Application/C07047D9-87F7-4CBD 加载文件数据-AE79-AAE26D93A400/库/应用程序支持/com.apple.watchconnectivity/46CAD076-37A8-4B60-A93E-F0F21F457593/文件传输/D9E589D8-E21B-4A34-9A29-8D6B53E997D5/文件传输结果

该文档使文件看起来像是已排队,因此我不确定导致错误的原因:

/** 系统会将文件入队并在适当的时候将其传输到对应的应用程序。发送应用程序退出后,文件传输将继续。如果文件成功到达,对应的应用程序将在下次启动时收到委托回调。元数据字典只能接受属性列表类型。*/

swift4 ios12 watchos-5

6
推荐指数
0
解决办法
446
查看次数

iOS XCode 突然控制台垃圾邮件:[默认] IOConnectCallMethod (kIOHIDEventServiceFastPathUserClientCopyEvent): 0xe00002f0 (copySpec = (null))

我有一个 ARKit iOS 应用程序运行良好,但手机摔得很厉害,今天早上它没有捕获帧,而是向控制台发送垃圾邮件:

[default] IOConnectCallMethod (kIOHIDEventServiceFastPathUserClientCopyEvent): 0xe00002f0 (copySpec = (null))
CVDataBuffer contains an invalid header
Run Code Online (Sandbox Code Playgroud)

这个错误代表什么?

附言。检查了另一个 AR 应用程序 - 也不适用于 ARKit

xcode ios arkit

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

iPhone/iPad圆形强度计控制(包括图像)

我找到了这个有趣的界面(从33秒开始http://vimeo.com/22946428),并且想为我自己的应用程序设计类似的东西.我对圆形强度计/旋钮控制特别感兴趣,如附图所示. 它具有非常具有未来感的感觉,使用touchesMoved:手势识别器回调实现起来应该相当简单.

但是为了不重新发明轮子,是否有任何开源库提供高级UI功能,如图片/视频中的功能?

更新:Hubert的回答演示了如何使用单指动作旋转表盘.拼图的第二部分是:如何用颜色填充控件?

我正在考虑旋转背景颜色图像,但是它的一部分必须被切掉或用其他东西覆盖,从空背景变为完整.也许切出的元素(大约1弧度)可能会隐藏一组跟随手指的扇形段,并产生一种不断增加或减少量规填充的错觉.6段x,y将连续动画,以这样的方式定位它们以便仅覆盖控制的所需部分.

强度计

iphone user-interface objective-c ipad gauge

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

iOS iPhone显示用户在空间中的方向和方向,如MKMapView上的指南针应用程序

当指南针应用程序使用地图视图显示它的位置时,会有一个小圆锥体显示手机指向的方向.但是,我无法使用显示用户位置的MKMapView重现它.这种视锥功能是开发人员可以使用的,还是我必须自己实现?

iPhone指南针地图应用程序

谢谢!

iphone objective-c mkmapview cllocationmanager compass-geolocation

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

iPhone UIView touchesMoved:withEvent:没有使用手势识别器调用UIView

我添加了一个UIView依赖于TouchesMoved:事件来拖动触摸.在同一视图控制器中已存在长按,点击,旋转和捏合手势识别器.我遇到了一个视图接收touchesBegan:touchesEnded:事件的问题,但没有触及.

我的问题是touchesMoved没有被调用是由手势识别器取消视图中的触摸引起的吗?我还有卷轴视图.这可能是罪魁祸首吗?

如果我将无法使用touchesMoved,这是实现"触摸和移动"功能的最近手势.是点击还是平移手势识别器?

谢谢您的帮助!

iphone objective-c uiview uiresponder ios

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

iOS递归文件夹大小

我将文件存储在本地文档目录中,由文件夹分隔.有没有一种简单的方法可以获取iPhone上文档目录和所有子目录的内容的文件大小?

我可以手动迭代文件夹并继续添加文件大小,但我希望有更清洁,更高效的东西.

谢谢 !

iphone size file objective-c ios

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

UIStoryboard如何以编程方式替换约束?

我有一个视图控制器布局在故事板中启用自动布局,我正在寻找一种方法来更改约束,以允许我的视图旋转到横向和重新排列屏幕上的按钮.当我尝试下面的代码时,我得到了大约二十几个"无法满足约束,打破约束......"消息,我无法真正解码.

有没有办法用编程方式指定的约束动态替换故事板中的约束?我想完全覆盖我在故事板中定义的按钮的布局.

-(void)updateViewConstraints
{
    [super updateViewConstraints];

    self.loginButton.translatesAutoresizingMaskIntoConstraints = NO;
    self.getStartedButton.translatesAutoresizingMaskIntoConstraints = NO;
    self.takeTourButton.translatesAutoresizingMaskIntoConstraints = NO;



    [self.loginButton removeConstraints:self.loginButton.constraints];
    [self.getStartedButton removeConstraints:self.getStartedButton.constraints];
    [self.takeTourButton removeConstraints:self.takeTourButton.constraints];


    one = self.loginButton;
    two = self.getStartedButton;
    three = self.takeTourButton;


    NSDictionary *metrics = @{@"height":@50.0,@"width":@100.0,@"leftSpacing":@110.0};
    NSDictionary *views = NSDictionaryOfVariableBindings(one,two,three);

    [self.view removeConstraints:activeTestLabelConstraints];
    [activeTestLabelConstraints removeAllObjects];

    if(isRotatingToLandscape)
    {

        [self registerConstraintsWithVisualFormat:@"|-[one(two)]-[two(three)]-[three]-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:views];
        [self registerConstraintsWithVisualFormat:@"V:[one(height)]-|" options:0 metrics:metrics views:views];

    }else
    {

        [self registerConstraintsWithVisualFormat:@"|-leftSpacing-[one(width)]" options:0 metrics:metrics views:views];
        [self registerConstraintsWithVisualFormat:@"[two(width)]" options:0 metrics:metrics views:views];
        [self registerConstraintsWithVisualFormat:@"[three(width)]" options:0 metrics:metrics views:views];
        [self registerConstraintsWithVisualFormat:@"V:[one(height)]-[two(75)]-[three(100)]-|" options:NSLayoutFormatAlignAllCenterX metrics:metrics views:views];
    } …
Run Code Online (Sandbox Code Playgroud)

objective-c uistoryboard autolayout ios6 nslayoutconstraint

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

iOS7 Sprite Kit如何在SKSpriteNode上实现长按或其他手势?

我正在构建一个基于精灵套件的游戏,而缺乏“右键单击”确实让我很难向用户传达一些重要信息。作为解决方案,我正在考虑长按、两指点击等手势。

如何在 SKSpriteNode 上实现手势?

这是我目前用来在触摸 SKSpriteNode 时获得类似按钮行为的方法。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self selectSkill:YES];
}
Run Code Online (Sandbox Code Playgroud)

objective-c gestures ios long-press sprite-kit

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