我发现Swift数字特别笨拙,就像现实生活中经常发生的那样,我必须就CGRect和CGPoint与CocoaTouch进行交流(例如,因为我们正在谈论某事的框架或bounds).CGFloat与Double考虑以下来自UIViewController子类的无辜代码:letscale=2.0letr=self.view.boundsvarr2=CGRect()r2.size.width=r.size.width*scale此代码无法编译,最后一行出现常见的神秘错误:Couldnotfindanoverloadfor'*'thatacceptsthesuppliedarguments这
我需要从CGSize和CGPoint的不同集合中为UIImageView创建一个框架,这两个值将始终不同,具体取决于用户的选择。那么我怎样才能使CGRect形成一个CGPoint和一个CGSize呢?提前谢谢你。 最佳答案 Objective-C的两个不同选项:CGRectaRect=CGRectMake(aPoint.x,aPoint.y,aSize.width,aSize.height);CGRectaRect={aPoint,aSize};swift3:letaRect=CGRect(origin:aPoint,size:aS
我需要检查我的View框架是否等于给定的CGRect。我试着这样做:CGRectrect=CGRectMake(20,20,20,20);if(self.view.frame==rect){//dosomestuff}但是,我收到一条错误消息,提示二进制表达式的操作数无效('CGRect'(又名'structCGRect')和'CGRect')。为什么我不能简单地比较两个CGRect? 最佳答案 使用这个:if(CGRectEqualToRect(self.view.frame,rect)){//dosomestuff}
我希望能够调试C结构,而不必显式键入它们所包含的每个属性。即我希望能够做这样的事情:CGPointcgPoint=CGPointMake(0,0);NSLog(@"%@",cgPoint);显然'%@'不起作用,因此问题。 最佳答案 你可以试试这个:NSLog(@"%@",NSStringFromCGPoint(cgPoint));有许多函数providedbyUIKit将各种CG结构转换为NSString。它不起作用的原因是因为%@表示一个对象。CGPoint是一个C结构(CGRects和CGSizes也是如此)。
我希望能够调试C结构,而不必显式键入它们所包含的每个属性。即我希望能够做这样的事情:CGPointcgPoint=CGPointMake(0,0);NSLog(@"%@",cgPoint);显然'%@'不起作用,因此问题。 最佳答案 你可以试试这个:NSLog(@"%@",NSStringFromCGPoint(cgPoint));有许多函数providedbyUIKit将各种CG结构转换为NSString。它不起作用的原因是因为%@表示一个对象。CGPoint是一个C结构(CGRects和CGSizes也是如此)。