小编Luk*_*uke的帖子

UIControlEventTouchDragExit在距离UIButton 100像素时触发

目前,UIControlEventTouchDragExit当我从按钮拖出100像素时,唯一的触发器.我想自定义这种行为并将该范围带到大约25像素,但我对编程相对较新,并且从未需要覆盖/自定义这样的内置方法.

我在这里读了一些其他帖子,我需要继承UIButton(或者甚至UIControl?),覆盖-(BOOL) beginTrackingWithTouch: (UITouch *) touch withEvent: (UIEvent *) event和相关的方法,但我真的不知道从哪里开始这样做.

有谁可以提供一些关于如何实现这一目标的建议?非常感激!^ _ ^

cocoa-touch drag-and-drop objective-c uitouch ios

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

点击状态栏时,我可以禁用/编辑自动跳转到顶部滚动吗?

我正在使用带有自动向下滚动的tableView的应用程序,因此点击状态栏(通常会跳到表格的顶部)会导致问题(它开始滚动但是如果自动滚动滴答,它会停止并离开它在中间的某个地方).

我要么禁用它,要么至少推出一些代码,当它被点击暂时暂停计时器,然后当它到达顶部时恢复它.

有没有办法实现这两件事?

objective-c uitableview uiscrollview scrolltop ios

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

编写一个算法来决定是否可以使用一组其他数字和特定运算符来达到目标​​数量?

我正在努力学习更多有关算法设计的知识,并且我已经为自己设定了一个挑战,即创建一个简单的游戏,向用户展示一系列数字,目标数字和一系列运算符(加,减,乘,除,也许是平方根等等).我需要做的是决定是否可以使用数组中的可用数字来制作目标数字.

我有点难过从哪里开始.在不同轮次的游戏,不同的运营商可以是可用的,例如+, -, *, and /,+ and -+ and *,或全部除+

我是否正确地说我将有效地为每个运算符组合需要一个单独的算法(但是有很多,有20个或者其他什么)?如果是这样,那么我是否需要遍历网格中的每个数字,在数组中的每个其他数字上执行每个可用的运算符?这似乎过于混乱,但我不确定还有其他选择.此选项也不会遵循通过多个操作的任何特定路径(例如,如果我想制作7,我可以这样做,12 + 5 - 10如果这些是我在阵列中可用的唯一数字).

谁能给我一些关于从哪里开始这种问题的指示?

algorithm math

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

垂直居中UILabel时忽略Ascender和Descender?

我正在使用AutoLayout将一些标签放在单元格的垂直中心.文本是全部大写的,但UILabel问题是,即使sizeToFit应用,也会在文本下方留下空间,这看起来很像字母上的尾部,例如小写的y,p和q.因为我是垂直居中的,所以这会导致偏移并且意味着文本看起来比应该做的高几个像素.

另一个问题可能是:我可以根据字体是否包含使用上升器或下降器的任何字符来智能地调整其垂直中心吗?

例如,字符串"abbaba"不需要下降器,而字符串"oyyoyo"不需要上升器.全部大写字符串也不需要下降器.如果我垂直居中"oyyoyoyo"它会显得太低.

在此输入图像描述

fonts objective-c ios autolayout

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

更改突出显示的UIButton BG颜色,但保留层角半径?

我正在UIButton使用1px xpp图像更改通过此类别方法的背景颜色:

- (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state
{
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0);
    [backgroundColor setFill];
    CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, 1, 1));
    UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
    [self setBackgroundImage:backgroundImage forState:state];
    UIGraphicsEndImageContext();
}
Run Code Online (Sandbox Code Playgroud)

但是,这会覆盖我的设置.layer.cornerRadius.我需要一个带圆角的按钮,但也需要一个可以突出显示的背景颜色.

有什么方法吗?角半径需要是动态的.

objective-c uibutton cglayer ios

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

从应用内部链接到Safari"添加到主屏幕"?

我的应用程序有自定义URL方案,可以使用深层链接直接从URL跳转到某些内容.我想在最近的Facebook Groups应用程序中复制这种行为,该应用程序允许用户点击应用程序中的"添加到主屏幕"按钮,将其带到localhostSafari中的自定义设计页面,允许用户点按Safari的"共享"和"添加到主屏幕"按钮,然后会在其主屏幕上添加一个图标,当点按该图标时,会将其带入群组应用程序以及相关的特定群组.

我的问题是,如果我将我的自定义URL方案深度链接发送到Safari,在用户可以点击添加到主屏幕之前,它将跟随该链接,并在我的应用程序中直接返回.我需要向Safari发送一些实际上不会跟随深层链接的内容,但如果用户将其添加到主屏幕仍然会链接到它,我不知道该怎么做.

Facebook群组在Safari地址栏中生成的链接看起来像这样,是否可以将JavaScript直接嵌入到URL中?:

data:text/html;charset=UTF-8;base64, <tens of thousands of characters in an alpha-numeric string>
Run Code Online (Sandbox Code Playgroud)

知道那是什么,以及我如何做类似的事情?

safari facebook objective-c deep-linking ios

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

以编程方式在UIAlertController上触发UIAlertAction吗?

关于此主题有两个现有的问题,但它们并不是我所追求的。我为我的应用程序编写了一个Swift应用程序评级提示,其中显示了两个UIAlertController实例,一个实例由另一个实例触发。

我现在正在尝试对此进行单元测试,并试图在测试中达到第二个警报。我编写了一个简单的间谍程序来检查第一个控制器,但是我想一种触发第一个警报的动作的方法,该警报又显示第二个。

我已经尝试过了alert.actions.first?.accessibilityActivate(),但是似乎并没有在该操作的处理程序中打断–这就是我所追求的。

unit-testing swift uialertcontroller uialertaction

6
推荐指数
2
解决办法
3294
查看次数

使用UIPanGestureRecognizer围绕某个点旋转UIView

我正在尝试创建一个允许用户从窗口侧面拉出面板的动画.在右上方可以看到少量视图,通过拉动视图,视图将向外旋转,固定在屏幕的右下角.希望这些图像显示我想要实现的内容(右侧的纸张表示视图的一部分将被隐藏.我希望用户能够拖动它,而不是滑动或点击.

任何人都能指出我如何实现这一目标的正确方向吗?我对iOS中的动画很陌生.我已经完成了平移手势,但是我需要这一点来旋转.我可以设置视图的.center属性,但这样做只是将整个视图移动到那一点,所以我需要一个center旋转,实际上不是视图的中间,我想?

在此输入图像描述 在此输入图像描述

编辑:我写了一个有效的方法,但视图并没有"卡住"用户的手指.我可以用手指拉动,比方说,45度,但是视野会移动得更多.不确定我如何同步它们,任何想法?

- (void) swipeSidebarOpen: (UIPanGestureRecognizer *) recognizer {
    //[self openOrCloseSideBar: YES];
    _sidebarView.layer.anchorPoint = CGPointMake(1.0, 1.0);
    _sidebarView.layer.position = CGPointMake(510, 330);

    UIView *shuttle = [recognizer view];

    if ([recognizer state] == UIGestureRecognizerStateBegan || [recognizer state] == UIGestureRecognizerStateChanged) {
        CGPoint vel = [recognizer velocityInView:[recognizer view]];

        if (vel.x > 0) {
            [recognizer view].transform = CGAffineTransformRotate([[recognizer view] transform], M_PI / 80.0f);
            [recognizer setTranslation: CGPointZero inView:[shuttle superview]];
        } else {
            [recognizer view].transform = CGAffineTransformRotate([[recognizer view] transform], -M_PI / 80.0f);
            [recognizer setTranslation: …
Run Code Online (Sandbox Code Playgroud)

core-animation objective-c uigesturerecognizer ios uipangesturerecognizer

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

暂时删除NSLayoutConstraint?

我有一个UITableViewCell使用AutoLayout布局的子类,我想要一个小动画,其中图像视图转换,增长一点并缩小.

目前,由于受到限制,图像右侧的标签也在移动(应该如此).

我想要一种快速简便的方法暂时说"在这个动画运行时将这些标签保留在当前状态".这是我可以做的事情,而不需要删除和重新添加这些约束,这是很麻烦的?

objective-c uitableview ios autolayout

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

如何在构建设备时只包含框架,而不是iOS模拟器?

我们正在使用第三方推送通知框架,该框架尚未针对x86_64进行编译,这意味着每当我们为模拟器构建时,我们都会收到构建警告.由于我们试图将警告视为错误,因此不会这样做.

我想在构建设备时只包含这个框架.然后我只会编译在设备上使用它的代码.

它可以实现吗?

xcode frameworks ios

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