相关疑难解决方法(0)

如何以编程方式创建基本UIButton?

如何以UIButton编程方式创建基本?例如,在我的视图控制器中,执行该viewDidLoad方法时,UIButton将动态创建三个s并设置其布局或属性.

objective-c uibutton programmatically-created

541
推荐指数
13
解决办法
54万
查看次数

如何使用Swift以编程方式添加约束

自上周以来我一直试图解决这个问题,而没有更进一步.好的,所以我需要在Swift中编程方式应用一些约束 来使用这段代码:UIView

var new_view:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100));
new_view.backgroundColor = UIColor.redColor();
view.addSubview(new_view);

var constX:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0);
self.view.addConstraint(constX);

var constY:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0);
self.view.addConstraint(constY);

var constW:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: new_view, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0);
self.view.addConstraint(constW);

var constH:NSLayoutConstraint = NSLayoutConstraint(item: new_view, attribute: …
Run Code Online (Sandbox Code Playgroud)

uiview ios autolayout nslayoutconstraint swift

409
推荐指数
14
解决办法
38万
查看次数

iOS 10:"[App]如果我们在真正的预提交处理程序中,由于CA限制,我们实际上无法添加任何新的围栏"

我有时在运行我的应用程序时在Xcode 8b3的日志中收到此消息,一切似乎都有效,但我想知道它来自何处.谷歌根本没有帮助.

ios

389
推荐指数
4
解决办法
15万
查看次数

如何正确子类UIControl?

我不想要UIButton或类似的东西.我想UIControl直接子类化并制作我自己的非常特殊的控件.

但由于某种原因,我所覆盖的任何方法都没有被调用过.目标动作的东西起作用,目标接收适当的动作消息.但是,在我的UIControl子类中,我必须捕获触摸坐标,这样做的唯一方法似乎是覆盖这些人:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    NSLog(@"begin touch track");
    return YES;
}

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    NSLog(@"continue touch track");
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

它们永远不会被调用,即使它UIControl是使用指定的初始化程序实例化的UIView,initWithFrame:.

我可以找到的所有示例总是使用UIButtonUISlider作为子类的基础,但我想更接近,UIControl因为这是我想要的源:快速和未延迟的触摸坐标.

objective-c uicontrol ios

66
推荐指数
5
解决办法
4万
查看次数

当我结合使用UIPanGestureRecognizer和自动布局时,我的UIViews混乱了

当我在iPhone或iPad上为每个允许的设备方向拖动它时,我想要一个球来跟踪我的手指.当旋转设备时,视图似乎正确居中,但是当我拖动它时,球不会停留在圆周上并且似乎在任何地方.


编辑

Martin R的答案现在按要求显示.我唯一的额外代码更改是删除不必要的声明var shapeLayer = CAShapeLayer()

在此输入图像描述


在我尝试将球和轨迹都限制在视图中心并将球的中心坐标作为偏移量添加到运行时之前,这个例子中的数学非常有意义.我遵循了有关如何约束视图的这些建议.

有三件事我不明白.

首先,从两个变量计算圆的周长trackRadius和角度theta,并使用sincostheta发现xy坐标不会把球在合适的位置.

其次,atan用于找到theta视图中心与被触摸点之间的角度,并使用trackRadiuswith theta来查找xy坐标不会将球放置或沿圆周移动到新的位置.

第三,每当我拖动球时,调试区域中的消息都会显示Xcode is Unable to simultaneously satisfy constraints,尽管在拖动之前没有报告任何约束问题.

这里可能存在多个问题.我的大脑开始受到伤害,如果有人能够指出我做错了什么,我将不胜感激.

这是我的代码.

import UIKit

class ViewController: UIViewController {

override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .all }
var shapeLayer                      = CAShapeLayer()
let track                           = ShapeView()
var ball                            = ShapeView() …
Run Code Online (Sandbox Code Playgroud)

uiview ios uipangesturerecognizer autolayout swift

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