小编Gol*_*Joe的帖子

立即检测iOS方向的变化

我有一个游戏,其中设备的方向影响游戏的状态.用户必须在横向,纵向和反向横向方向之间快速切换.到目前为止,我一直在通过以下方式注册游戏以获取方向通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
Run Code Online (Sandbox Code Playgroud)

但它太慢了 - 旋转电话和通知实际被解雇之间似乎有大约第二个延迟.我需要一种方法来立即检测设备方向的变化.我已经尝试过使用陀螺仪进行试验,但我还不熟悉它,以了解它是否是我正在寻找的解决方案.

iphone objective-c orientation ios gyroscope

53
推荐指数
6
解决办法
10万
查看次数

使用xcode 6提交时出现错误ITMS-9000"无效图像路径"

在使用xcode 6验证或提交我的应用时,我收到错误消息:

ERROR ITMS-9000: "Invalid Image Path - No image found at the path referenced
under key 'CFBundleIcons': 'AppIcon120x120'"
Run Code Online (Sandbox Code Playgroud)

我检查了我的plist文件,并且没有CFBundleIcons的条目.我正在使用资产目录,我可以看到它在常规目标设置下正确配置(它也可以使用设备上的图标正确构建).我也试过删除并重新添加目录.我最好的猜测是,当在多个目标中使用多个资产目录时,xcode中存在某种错误.有任何想法吗?

xcode xcasset

38
推荐指数
1
解决办法
6205
查看次数

intrinsicContentSize() - 方法不会覆盖其超类中的任何方法

我更新到Xcode 8 beta 5,现在从继承自UIView的类中获得以下错误:

Method does not override any method from its superclass

override public func intrinsicContentSize() -> CGSize
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

xcode uiview swift

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

调用[myFunction]的结果未使用

在Obj-C中,常见的做法是使用便捷函数来执行常见操作,例如为视图配置自动布局:

func makeConstraint(withAnotherView : UIView) -> NSLayoutConstraint
{
   // Make some constraint 
   // ...

   // Return the created constraint
   return NSLayoutConstraint()
}
Run Code Online (Sandbox Code Playgroud)

如果你只需要设置约束并忘记它,你可以调用:

[view1 makeConstraint: view2]

如果您想稍后存储约束以便可以删除/修改它,您可以执行以下操作:

NSLayoutConstraint * c;
c = [view1 makeConstraint: view2]
Run Code Online (Sandbox Code Playgroud)

我想在swift中执行此操作,但如果我调用上面的函数并且不捕获返回的约束,我会收到警告:

Result of call to 'makeConstraint(withAnotherView:)' is unused
Run Code Online (Sandbox Code Playgroud)

很烦人.有没有办法让Swift知道我并不总是想要捕获返回值?

注意:我知道这一点.这很难看,而不是我想要的:

_ = view1.makeConstraint(withAnotherView: view2)
Run Code Online (Sandbox Code Playgroud)

function swift

15
推荐指数
1
解决办法
7160
查看次数

当你想要什么都不返回时,从collectionView(_:viewForSupplementaryElementOfKind:at :)返回什么?

我有一个UICollectionView具有节标题,但没有节页脚.因此,我没有明确的页脚视图. Apple的文档说明了这一点You must not return nil from this method.

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    switch kind {
    case UICollectionElementKindSectionHeader:
        let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind,
                                                                         withReuseIdentifier: "MyHeaderView",
                                                                         for: indexPath) as! MyHeaderView
        switch indexPath.section
        {
        case 0:
            headerView.label_title.text = "SOME HEADER"
        case 1:
            headerView.label_title.text = "ANOTHER HEADER"
        default:
            headerView.label_title.text = "UNKNOWN HEADER"
        }
        return headerView
    default:
        assert(false, "Unexpected element kind") // Not a good idea either
    }
    return nil // NOPE, not …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview swift

15
推荐指数
2
解决办法
4151
查看次数

扩展UIViewPropertyAnimator?

UIViewPropertyAnimator非常方便修改视图的变换,alpha等.但是,有时您希望为CAShapeLayer路径设置动画或UIImageView更改图像.有没有办法扩展UIViewPropertyAnimator的功能以支持其他属性?如果没有,我如何将单独的动画与复杂的关键帧动画同步?

animation uiview ios swift uiviewpropertyanimator

12
推荐指数
1
解决办法
620
查看次数

Xcode 8 - 找不到选项'-F'的目录

在Xcode 8 beta 5中开始了一个新项目,我收到了每个目标中每个可可豆荚的警告:

ld: warning: directory not found for option '-F/Users/NinjaCoder/Library/Developer/Xcode/DerivedData/NinjaProduct-bfwyaspiuhsjzkhepkjmeoiayjnk/Build/Products/Debug-iphonesimulator/PureLayout'
Run Code Online (Sandbox Code Playgroud)

我仍然可以跑,但我想摆脱这些警告.尝试在此链接上的解决方案,但它们不起作用:如何修复找不到选项-F错误的目录

xcode cocoapods

11
推荐指数
0
解决办法
779
查看次数

有没有办法在 Dart 中有两种类型的争论?

对于导航,我构建了一个简单的工厂类,它生成一个将路由推送到导航器的 ListTile:

static Widget simpleNavRow(String text, BuildContext context, String route) {
  return Column(
    children: <Widget>[
      ListTile(
        title: Text(text),
        onTap: () {
          Navigator.pushNamed(context, route);
        },
      ),
      Divider(),
    ],
  );
}
Run Code Online (Sandbox Code Playgroud)

然而,我很快意识到支持推送小部件也会很方便(或者如果可能的话从它们的类中实例化)。我不知道如何让“路由”参数接受字符串或小部件,所以我创建了一个用这两种类型之一初始化的类。这段代码有效,但有没有更好的方法来实现这一点?

class NavTo {
  String route;
  Widget widget;

  NavTo.route(this.route);
  NavTo.widget(this.widget);

  push(BuildContext context) {
    if (route != null) {
      Navigator.pushNamed(context, route);
    }
    if (widget != null) {
      Navigator.push(context, MaterialPageRoute(builder: (context) {
        return widget;
      }));
    }
  }
}

class ListHelper {
  static final padding = EdgeInsets.all(12.0);

  static Widget simpleNavRow(String text, BuildContext context, NavTo …
Run Code Online (Sandbox Code Playgroud)

arguments function dart flutter

11
推荐指数
1
解决办法
9816
查看次数

目前设置UIView角落半径的"正确"方法是什么?

设置UIView角的半径可以通过以下方式完成:

  1. 设置layercornerRadius属性:

    view.layer.cornerRadius = 5;
    view.layer.masksToBounds = true;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 涂上面膜:

    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 覆盖draw(_:):

    func draw(_ rect: CGRect) {
        // Size of rounded rectangle
        let rectWidth = rect.width
        let rectHeight = rect.height
    
        // Find center of actual frame to set rectangle in middle
        let xf: CGFloat = (self.frame.width …
    Run Code Online (Sandbox Code Playgroud)

uiview ios swift

10
推荐指数
5
解决办法
5878
查看次数

UICollectionViewCell和UICollectionReusableView有什么区别?

通过UICollectionView教程,我看到一些UICollectionViewCell子项在哪里UICollectionReusableView被子类化,而另一些在哪里被子类化.当你使用一个而不是另一个时,文档并没有说清楚.

ios uicollectionview uicollectionviewcell swift

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