小编Dou*_*ith的帖子

在iOS 7中,如果我使用`prefersStatusBarHidden`方法隐藏状态栏,导航栏会缩小/丢失高度.我可以阻止这种行为吗?

在iOS 7上,如果我使用该prefersStatusBarHidden方法并返回可以更改的实例变量:

- (BOOL)prefersStatusBarHidden {
    return self.statusBarShouldBeHidden;
}
Run Code Online (Sandbox Code Playgroud)

并且我更改了实例变量,从而隐藏了状态栏,导航栏丢失了状态栏占用的高度的20pt.但是,我不想要这个.是否可以隐藏状态栏但保持导航栏的高度

objective-c ios ios7

11
推荐指数
2
解决办法
4372
查看次数

如何创建元组数组?

我正在尝试在Swift中创建一个元组数组,但是很难:

var fun: (num1: Int, num2: Int)[] = (num1: Int, num2: Int)[]()
Run Code Online (Sandbox Code Playgroud)

以上导致编译器错误.

为什么那么错?以下工作正常:

var foo: Int[] = Int[]()
Run Code Online (Sandbox Code Playgroud)

arrays tuples swift

11
推荐指数
2
解决办法
9572
查看次数

在iOS 7中,如何更改UIActionSheet中选项的颜色?

我在整个应用程序中使用绿色作为"动作颜色",我希望我的UIActionSheets中的选项也是绿色的,以保持一致性.如何将UIActionSheet选项的颜色从蓝色更改为绿色?

objective-c uiactionsheet ios ios7

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

使用NSOperationQueue,如何添加到后台队列而不是main,以及控制操作量如何工作?

我很喜欢,NSOperationQueue但我有一些问题需要了解它的某些部分.

objc.io的第二期中,他们回顾了NSOperationQueue,并提到它有两种队列,即主线程上运行的主队列和后台队列.他们提到你可以访问主队列,[NSOperation mainQueue]然后添加操作它.

  • 你通常不想这样做,对吗?如果它在主线程上运行,它是否会阻止主线程执行其他任务?它不会与其他任务同时运行吗?

它还提到你可以通过创建NSOperation的实例(潜在的子类)来添加到后台队列(我理解会更好?).

  • 我是否保存了为操作创建的NSOperationQueue的引用,以便创建更多操作?我假设没有像背景队列那样的单例mainQueue,那么如何管理向后台队列添加任务呢?

它还提到您可以控制与maxConcurrentOperationCount属性同时运行的操作量.

  • 我知道你通常把它设置为NSOperationQueueDefaultMaxConcurrentOperationCount,但如果我手动将它设置为一个特定的数字,它是否对应于一次可以运行的最大线程数?例如,如果iPhone上的处理器可以同时运行4个线程并且我将该属性设置为8,会发生什么?

concurrency objective-c nsoperation nsoperationqueue ios

10
推荐指数
1
解决办法
6482
查看次数

切换方向时如何正确定位UIScrollView的图像?

我很难找出如何最好地重新定位我UIScrollView的图像视图(我现在有一个类似于图库的应用程序,类似于Photos.app,特别是当你查看单个图像时)从纵向切换到横向,反之亦然.

我知道我最好的办法是操纵contentOffset房产,但我不确定应该改变什么.

我玩过很多次,似乎无论出于何种原因128都能很好地运作.在我的viewWillLayoutSubviews视图控制器的方法中,我有:

    if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
        CGPoint newContentOffset = self.scrollView.contentOffset;

        if (newContentOffset.x >= 128) {
            newContentOffset.x -= 128.0;
        }
        else {
            newContentOffset.x = 0.0;
        }

        newContentOffset.y += 128.0;

        self.scrollView.contentOffset = newContentOffset;
    }
    else {
        CGPoint newContentOffset = self.scrollView.contentOffset;

        if (newContentOffset.y >= 128) {
            newContentOffset.y -= 128.0;
        }
        else {
            newContentOffset.y = 0.0;
        }

        newContentOffset.x += 128.0;

        self.scrollView.contentOffset = newContentOffset;
    }
Run Code Online (Sandbox Code Playgroud)

它运作得很好.我讨厌它如何使用一个神奇的数字,我不知道它会来自哪里.

此外,每当我缩放图像时,我都将其设置为保持居中(就像Photos.app一样):

- (void)centerScrollViewContent {
    // Keep image view …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c uiscrollview uiimageview ios

10
推荐指数
1
解决办法
3108
查看次数

为什么当我在平移单元格时更改UIImageView的图像时,整个视图会重置一秒钟?

这是一个发生的视频:

http://cl.ly/3V0D3U1m3w0E

基本上,如果我在平移时更改UIImageView(X)的图像属性,它会将视图中的所有控件恢复到原始的未打开位置.(它们都嵌入在UIView中,因此我可以"平移单元格",而UIImageViews在视图之外并且是独立的.)

如果我不更改图像:

http://cl.ly/3T1N1G33320G

为了记录,我改变图像,当用户平移一定量,我相信80点.

这是代码:

// Only allow the cell to be moved 100 pixels left or right
if (xPos <= 100 && xPos >= -100) {
    // Move our cell to the xPos we defined
    CGRect slidingViewFrame = self.slidingView.frame;
    slidingViewFrame.origin = CGPointMake(xPos - 100, 0);
    self.slidingView.frame = slidingViewFrame;

    if (xPos >= 80) {
        if (_removeIconIsActive == NO) {
            // Change remove icon to a red, active state and animate the change
            self.removeIconImageView.image = [UIImage imageNamed:@"remove-icon-active.png"];

            _removeIconIsActive = …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview uigesturerecognizer ios uipangesturerecognizer

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

UIEdgeInsetsMake在单元格上创建一个奇怪的乐队,我不知道如何解决它

我正在尝试将UIEdgeInsetsMake我的单元格的背景设置为渐变.我已尝试过多种方法让它发挥作用,但无论我使用什么,总会出现问题.

我只是有两个静态细胞,在那里我试图设置他们backgroundViewwillDisplayCell:.我有顶部,底部和中间单元的单独图像,但由于我有两个单元格,我只需要顶部和底部.这些是这些图像:

最佳

在此输入图像描述

底部

在此输入图像描述

底部顶部有一条缺失线,因此它们之间没有2pt线.我稍微调整了底部的高度以补偿(高1pt).这些图像是44x44pt.

我把它们设置如下:

- (void)tableView:(UITableView *)tableView 
  willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == 0) {
        UIImageView *topCellBackgroundImageView = 
        [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"]
               resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
        cell.backgroundView = topCellBackgroundImageView;
    }
    // If it's the last row
    else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
        UIImageView *bottomCellBackgroundImageView = 
        [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"] 
               resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
        cell.backgroundView = bottomCellBackgroundImageView;
    }

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
Run Code Online (Sandbox Code Playgroud)

这不行.正如您在下面的图片中所看到的,在顶部单元格中,整个单元格中有一条1pt白色"带",看起来非常难看.我不知道为什么会这样.

在此输入图像描述

所以我改变了它的topCellBackgroundView边缘插入(5.0, 5.0, …

objective-c uitableview uiimageview ios uiedgeinsets

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

如何让Jekyll将我的config.rb排除在SASS之外?

在Jeky'll的_config.yml文件中,我在底部有以下内容:exclude: README.md, css/config.rb

它排除README罚款,但不包括config.rb文件.我究竟做错了什么?

jekyll

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

将数据异步加载到表格视图单元格中的正确方法/接受标准是什么?

许多应用程序,如Tweetbot,Twitterrific,Alien Blue等,显示来自API的图像似乎以异步方式加载它们.似乎初始可视图像是同步加载的 - 即初始可视单元格在它们的图像准备好之前不会显示 - 但是当进一步向下滚动到初始可查看单元格之后,似乎这些新单元格的图像是独立加载的.初始同步负载.

例如,当用户在Twitter应用程序中加载推文时,直到用户头像的图像加载后才会显示最初的六条或七条推文,但之后的40多条推文(不是'在用户滚动之前可见,我们不必等待这些图像加载以显示初始单元格,因为它们甚至还不可见.似乎大多数应用程序允许这些图像独立加载,使初始推文显示得更快.

我很困惑如何最好地实现这一点,例如,如果大多数开发人员采用标准方式来做这件事,我不知道.

我习惯于通过从响应中向Core Data提供对象来使用Core Data,然后NSFetchedResultsController在表视图中显示它们.然而,这会产生负面影响,要求在显示单元格之前将所有内容完全加载并存储在对象中.这意味着如果API返回一个图像链接给我,并且我想在单元格中显示该图像,我必须将链接加载到a UIImage并将其添加到Core Data.

所以我的问题基本归结为: Tweetbot,Twitterrific,Alien Blue等热门应用程序如何处理需要加载大量图像和数据的表格视图,但仍允许非常快速的加载,而不必加载不必要的数据,仍然保持高滚动性能?

core-data objective-c uitableview grand-central-dispatch ios

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

如何将UILabel的一部分直观地作为块引用?

如何使一个特定部分UILabel看起来像一个块引用,或者在文本的左侧有一条垂直线?TextKit会在这里进来吗?如果是这样,怎么样?

Mail.app执行此操作(请参阅彩色部分和侧面的行):

在此输入图像描述

如何在不使用多个UILabels的情况下复制此效果(因为我动态创建它会相当粗糙)?

cocoa-touch objective-c uilabel ios textkit

9
推荐指数
2
解决办法
989
查看次数