小编Bri*_*ure的帖子

如何设置单元格间距和UICollectionView - UICollectionViewFlowLayout大小比例?

我想加入UICollectionViewViewController了,我需要有"每行" 3个细胞无细胞之间的空格(它应该看起来像一个网格).单元格宽度应该是屏幕尺寸的三分之一,所以我认为layout.item宽度应该相同.但后来我明白了:

layout.itemSize width = screenSize.width/3

如果我减小那个尺寸(例如78像素),那就更好了,但是行中的第三个单元格不是完全可见的,我仍然有那个空白区域(顶部和底部,左侧和右侧).

在此输入图像描述

class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource {
    var collectionView: UICollectionView?
    var screenSize: CGRect!
    var screenWidth: CGFloat!
    var screenHeight: CGFloat!

    override func viewDidLoad() {
        super.viewDidLoad()

        screenSize = UIScreen.mainScreen().bounds
        screenWidth = screenSize.width
        screenHeight = screenSize.height

        // Do any additional setup after loading the view, typically from a nib
        let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 20, left: 0, bottom: 10, right: 0)
        layout.itemSize = CGSize(width: screenWidth / 3, height: …
Run Code Online (Sandbox Code Playgroud)

uicollectionview uicollectionviewcell uicollectionviewlayout swift

122
推荐指数
6
解决办法
15万
查看次数

转换为swift 3后,视图控制器中出现奇怪的通用函数

在我的项目中,在转换为swift 3之后,我的ViewController课程出现了一个新功能:

fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
   switch (lhs, rhs) {
  case let (l?, r?):
    return l < r
  case (nil, _?):
    return true
  default:
    return false
  }
}
Run Code Online (Sandbox Code Playgroud)

这个功能有什么作用?我为什么需要它?

ios swift swift3

39
推荐指数
1
解决办法
3124
查看次数

浮动和双重有什么区别?

当我运行以下代码时,

NSString* s= @"10000000.01";
float f = [s floatValue];
double d = [s doubleValue];

if(f > 10000000)
{
    NSLog(@"Over Value");
}
else {
    NSLog(@"OK Float");
}

if(d > 10000000)
{
    NSLog(@"Over value");
}
else {
    NSLog(@"OK Double");
}
Run Code Online (Sandbox Code Playgroud)

回应如下.

2013-04-19 17:07:29.284 float[2991:907] OK Float
2013-04-19 17:07:29.287 float[2991:907] Over value
Run Code Online (Sandbox Code Playgroud)

为什么浮动值变为10000000.00而不是10000000.01?

objective-c ios

18
推荐指数
1
解决办法
3万
查看次数

使用动画同时显示2个视图控制器

我正在关注这个非常棒的视频,为我的项目创建一个自定义过渡,因为我正在为iPad开发,所以我不想将目标视图控制器全屏显示,而是让它占据屏幕的一半,如下所示:

在此输入图像描述

我的自定义转换类的代码是:

class CircularTransition: NSObject {

var circle = UIView()
var startingPoint = CGPoint.zero {
    didSet {
        circle.center = startingPoint
    }
}
var circleColor = UIColor.white
var duration = 0.4

enum circularTransitionMode: Int {
    case present, dismiss
}
var transitionMode = circularTransitionMode.present    
}

extension CircularTransition: UIViewControllerAnimatedTransitioning {

func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
    return duration
}

func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
    let containerView = transitionContext.containerView
    if transitionMode == .present {
        if let presentedView = transitionContext.view(forKey: UITransitionContextViewKey.to) { …
Run Code Online (Sandbox Code Playgroud)

animation ios swift

10
推荐指数
2
解决办法
462
查看次数

如何使用Hero框架?

我正在学习在Github上使用这个流行的动画框架:https://github.com/lkzhao/Hero

我构建了一个测试项目,如下所示:

在此输入图像描述

这是我的ViewController:

class ViewController: UIViewController {

    @IBOutlet weak var animationObject: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        isHeroEnabled = true
        animationObject.heroModifiers = [.fade, .translate(x:0, y:-250), .rotate(x:-1.6), .scale(1.5)]
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行项目时,视图不会移动.我不知道如何从维基页面开始工作Hero,所以有人可以给我一个提示吗?

animation ios swift

9
推荐指数
1
解决办法
3761
查看次数

类型不符合Alamofire协议'URLRequestConvertible'

这是代码:

enum Router: URLRequestConvertible {
    //Error: Type 'Five100px.Router' does not conform to protocol 'URLRequestConvertible'

    static let baseURLString = "https://api.500px.com/v1"
    static let consumerKey = "MY_KEY"

    case PopularPhotos(Int)
    case PhotoInfo(Int, ImageSize)
    case Comments(Int, Int)

    var URLRequest: NSURLRequest {

        let (path, parameters) : (String, [String: AnyObject]) = {

            switch self {

            case .PopularPhotos(let page):
                let params = ["consumer_key": Router.consumerKey, "page": "\(page)", "feature": "popular", "rpp": "50", "include_store": "store_download", "include_status": "votes"]
                return ("/phtos", params)

            case .PhotoInfo(let photoID, let ImageSize):
                var params = ["consumer_key": Router.consumerKey, "image_size": …
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire

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

设置线帽样式不起作用UIBezierPath

这是我的代码:

    let cross = UIBezierPath()
    cross.move(to: CGPoint(x: skull.bounds.maxX, y: skull.bounds.minY))
    cross.addLine(to: CGPoint(x: skull.bounds.minX, y: skull.bounds.maxY))
    cross.close()
    UIColor.red.set()
    cross.lineWidth = 3.0
    cross.lineCapStyle = .round
    cross.stroke()
Run Code Online (Sandbox Code Playgroud)

我想围绕线的末端,但它仍然是正方形,我应该怎么做?

core-graphics ios uibezierpath swift

5
推荐指数
3
解决办法
3214
查看次数

视图控制器原点每次显示时都会更改

这是我的视图控制器应该是:

在此输入图像描述

这有时是这样的:

在此输入图像描述

我想在圆圈中显示一个视图控制器,但是,几乎每次ResultViewController呈现circle()中的视图控制器时,它的位置都不同,尽管它的属性根本不会改变.这是我的代码:

func openCircle(withCenter center: CGPoint, dataSource: ([Items], Int, String)){
    self.addCircle(withCenter: center, dataSource: dataSource)
}

func addCircle(withCenter circleCenter: CGPoint, dataSource: ([Items], Int, String)) {

    let longerSide = fmax(view.frame.size.height, view.frame.size.width)
    let shorterSide = fmin(view.frame.size.height, view.frame.size.width)

    let circleRadius = longerSide / 2
    var resultViewOrigin = CGPoint()
    var resultViewSize = CGSize()

    if UIDevice.current.userInterfaceIdiom == .pad {

        let rectWidth = shorterSide / 2
        let rectHeight = sqrt(abs(circleRadius * circleRadius - rectWidth * rectWidth)) + view.frame.size.height - circleCenter.y
        resultViewSize = CGSize(width: rectWidth, …
Run Code Online (Sandbox Code Playgroud)

uiview ios swift

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

集合视图 cellForItemAt indexPath 未被调用(Swift)

我从故事板创建了一个集合视图控制器,并将其自定义类设置为ItemCollectionVC,将其单元格的自定义类ItemCell设置为,并将其重用标识符设置为Cell

这是我的ItemCollectionVC课:

import UIKit

private let reuseIdentifier = "Cell"

class ItemCollectionVC: UICollectionViewController {

var dataSourceItems: [Items] = []
var counterBuildItems: [Items] {
    let weaponItemArray = WeaponItems.weaponItems as [Items]
    let defenseItemArray = DefenseItems.defenseItems as [Items]
    return weaponItemArray + defenseItemArray
}
var freeBuildItems = WeaponItems.weaponItems as [Items]
var captureKrakenItems: [Items] {
    let weaponItemArray = WeaponItems.weaponItems as [Items]
    let abilityItemArray = AbilityItems.abilityItems as [Items]
    return weaponItemArray + abilityItemArray
}

override func viewDidAppear(_ animated: Bool) {

    switch …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview swift

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

iOS中的有效载荷数据是什么?

我正在调试程序以检查属性值是否正确设置,在此函数中设置了一个断点:

func showContent(data: Any) -> UIView {
    // breakpoint here
    var contentView = UIView()
    if let image = data as? UIImage {
        let imageView = UIImageView()
        imageView.image = image
        contentView = imageView
    }
    if let text = data as? String {
        let label = UILabel()
        label.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
        label.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
        label.text = text
        contentView = label
    }
    return contentView
}
Run Code Online (Sandbox Code Playgroud)

传递给此函数的值来自视图控制器:

override func viewDidLoad() {
    calcGroupFamiliarity()
    flashCardView.linkedMemory = Memory(masteryLevel: 1, algorithm: Algorithm.algorithm1.chooseAlgorithm(), forgetRatio: 0, lastStudyTime: Date(), front: …
Run Code Online (Sandbox Code Playgroud)

ios swift

3
推荐指数
1
解决办法
1871
查看次数