小编myl*_*les的帖子

首次加载时UICollectionViewCell内容大小错误

我有一个添加UICollectionView到我的,UIViewController并为它制作了一个自定义单元格.

我使用该sizeForItemAtIndexPath方法设置单元格的大小,并将每个单元格设置为UIScreen.mainScreen().bounds.width/2高度和宽度.基本上,每个单元格都是屏幕宽度的一半,高度相同.

然后我UIImageView在单元格内部,每个边缘固定到单元格的相对边缘,以便图像视图填充单元格.我也有一个UILabel在细胞中垂直和水平居中的.

但是,在第一次加载时,单元格的大小正确,但内容在左上角的小方块中要小得多.(如下图所示,我将单元格的contentView背景颜色设置为绿色,将imageView背景颜色设置为红色).

在此输入图像描述

然后向下滚动一点(我假设一个可重复使用的单元格出列)所有单元格都很好(滚动后再保持正常).

在此输入图像描述

是什么导致内容在首次加载时不能正确约束?

UPDATE

我的一些代码UIViewController:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        var cell = collectionView.dequeueReusableCellWithReuseIdentifier("PrevDrawCell", forIndexPath: indexPath) as? PrevDrawCell

        if cell == nil {
            cell = PrevDrawCell()
        }

        cell!.drawVC = self
        cell!.imageShortCode = self.tempImageURLs[indexPath.row]

        // Pull image (async) and set after download
        cell!.setupImage()

        cell!.contentView.backgroundColor = UIColor.greenColor()
        cell!.coverView.backgroundColor = UIColor.redColor()

        cell!.dateLabel.font = UIFont(name: "HelveticaNeue-Light", size: 26)
        cell!.dateLabel.text = "\(self.tempImageURLs.count-indexPath.row)/9"

        return cell! …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionview uicollectionviewcell swift

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

从 TabBarController 的子视图在 TabBar 后面插入子视图

我有TabBar2 个标签。在某些时候,从 2 个选项卡中的任何一个,我想添加一个在两个选项卡视图上都可见但在TabBar.

所以我想,TabBarControllerTabBar.

这在原则上工作正常,我有后面的视图,TabBar但现在根据我的需要覆盖了我的 2 个标签。但是,它实际上并没有加载。只是它的背景加载,并且只viewDidLoad()被调用,而不是 viewWillAppear()或任何其他。

我也打过电话addChildViewController(myVC)TabBarController其中有没有效果,也可手动调用viewWillAppear()的视图控制器我想补充这也没有影响(我还半信半疑,是否手动调用viewWillAppear()被许可?)。

我正在尝试做的可能吗?我错过了什么?或者我应该以其他方式尝试这个?

subview uitabbarcontroller ios swift

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

生成仅填充值0或1的随机稀疏矩阵

我正在尝试使用SciPy生成随机csr_matrix,但我需要它只填充值0或1.

到目前为止我正在尝试使用:

rand(1000, 10, density=0.2, format='csr', random_state=np.random.randint(0, 2))

我得到了我想要的正确结构和密度,但填充它的值是0到1之间的浮点数.

有没有办法只用0或1的浮点数生成这个结构?

python random numpy scipy sparse-matrix

4
推荐指数
1
解决办法
3563
查看次数

OpenMP循环为同一个串行循环提供不同的结果

我有一些串行代码:

double* a = malloc((1000000) * sizeof(double));
double* b = malloc((1000000) * sizeof(double));
double totalA = 0;

for (int i = 0; i < 1000000; i++) {

    if (i == 0) {
        a[i] = sin(i);
    }

    b[i] = sin(i+1);

    if (i < 1000000-1) {
        a[i+1] = b[i];
    }

    totalA += a[i];
}
Run Code Online (Sandbox Code Playgroud)

totalA此串行循环后的输出是0.232883978073.

然后我有一个OpenMP版本(注意:所有变量都重新初始化):

double* a = malloc((1000000) * sizeof(double));
double* b = malloc((1000000) * sizeof(double));
double totalA = 0;

#pragma omp parallel for reduction(+:totalA)
for (int …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing multicore openmp reduction

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

UICollisionBehavior边界不起作用

我在导航控制器中有一个视图.

然后我在这个视图中添加一个子视图并偏移其原点高度,使其仅覆盖屏幕的一半(另一半从屏幕底部溢出).我希望能够向上拖动此视图,但是当它到达导航栏的底部时会停止.

我正在使用a UIPanGestureRecognizer来处理视图的拖动,这很好但是它似乎不会停在边界.

这是我正在使用的代码:

bottomNavbarY = UIApplication.sharedApplication().statusBarFrame.size.height + self.navigationController!.navigationBar.frame.size.height

view.addSubview(pullover.view)
pullover.view.frame.origin.y = pulloverOffset

var animator = UIDynamicAnimator(referenceView: view)
var collision = UICollisionBehavior(items: [pullover.view])
collision.translatesReferenceBoundsIntoBoundary = true
collision.addBoundaryWithIdentifier("upper", fromPoint: CGPointMake(0, bottomNavbarY), toPoint: CGPointMake(UIScreen.mainScreen().bounds.size.width, bottomNavbarY))
animator.addBehavior(collision)
Run Code Online (Sandbox Code Playgroud)

然而,当我向上拖动覆盖视图时,它从不与任何边界相互作用,它只是直接通过.我究竟做错了什么?是否可以使用边界来停止用户以这种方式拖动的视图?

boundary ios uicollisionbehavior uidynamicanimator swift

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