小编Dou*_*ith的帖子

在C中包含头文件时,它是否会自动包含同名的.c文件?

我在网上以及在我的教科书中环顾四周,这让我感到困惑.

假设你在stack.c中有一些堆栈函数,你将它们的原型放在stack.h中.您的主程序,例如test.c #include "stack.h"位于顶部.这就是所有示例的显示方式.

所以它包括原型,但它是如何实现的?头文件似乎不需要你#include stack.c使用它们.它只是搜索同一文件夹中的所有.c文件并尝试找到它们吗?

c header

7
推荐指数
1
解决办法
3839
查看次数

如何让我的UITextView在iOS 7下的屏幕高度减去键盘?

我的代码在iOS 6下运行正常,但在iOS 7下我似乎无法使我的UITextView设备屏幕的高度减去键盘(换句话说,当键盘启动时,UITextView仍然是全屏,但是不要去键盘下面).

首先,当我将UITextView放入我的视图控制器(嵌入在导航控制器中)时,它也必须位于导航栏下,否则它会开始太远.

从那里我尝试了所有这些例子:

self.textView.contentInset = UIEdgeInsetsMake(0, 0, 230, 0);
self.textView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 230, 0);
self.textView.textContainerInset = UIEdgeInsetsMake(0, 0, 230, 0);
Run Code Online (Sandbox Code Playgroud)

每个键盘的位置仍然会在某些点上覆盖textview.我也试过设置一个高度约束并操纵常量,但没有运气.

self.height.constant = self.height.constant - 240.0;
Run Code Online (Sandbox Code Playgroud)

(height约束的出口在哪里.)

这些都是在[self.textField becomeFirstResponder];电话会议之前和之后都尝试过的.

我怎么做到这一点?我只想要一个全屏UITextView,其中插入符号不会出现在键盘下面,但它在iOS 7下看起来很疯狂.

objective-c uiscrollview uitextview ios ios7

7
推荐指数
1
解决办法
3641
查看次数

使用iOS 7中的动态类型,如何考虑更高级的布局问题,例如标签/视图之间的间距?

我正在更新我的应用程序以支持iOS 7中的动态类型.根据系统设置调整文本大小相对容易,但是因为我在UITableView的上下文中使用它而且在多个UILabel的单元格中使用它他们,文字大小不是我唯一要担心的事情.如果文本增长,单元格的高度也应该如果文本缩小,那么单元格的高度也应该缩小.

此外,如果它变得更小,与其最大尺寸类型相比,它们之间的间距显然应该更小(因为在较小的尺寸下,两者之间的空间将是巨大的).

当用户更改其动态类型大小时,如何更改更高级的布局问题?


现在,我正在做一些非常丑陋的事情.我看一下我的一个标签的高度,并用它的大小来缩放我的常量.但它非常不精确,因为,当前文本大小的UILabel高度的110%被用作元素之间的填充不一定是普遍有效的.

所以这就是我在那个例子中所做的事情:

    CGRect articleTitleRect = [article.title boundingRectWithSize:CGSizeMake(CGRectGetWidth(self.contentView.bounds) - 29, MAXFLOAT)
                                                          options:NSStringDrawingUsesFontLeading
                                                       attributes:@{ NSFontAttributeName: [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline] }
                                                          context:nil];
    self.urlConstant.constant = articleTitleRect.size.height / 5;
    self.previewConstant.constant = articleTitleRect.size.height / 5;
Run Code Online (Sandbox Code Playgroud)

(基本上找出标签的高度,然后使用百分比来推断间距.再次,非常不精确,并且普遍无法正常工作.)

我考虑的另一件事是检查preferredFontForTextStyle:点大小的电流等于什么,并且对于特定值硬编码接口调整/间隔.这样做效果会好一些,但它似乎仍然不像Apple所想的那样最佳,因为它不是非常动态(例如,如果它们增加了另一种类型的尺寸就会中断)并且你几乎正在嗅着他们不喜欢的价值观给你蝙蝠(这使它看起来很hacky).


那么Tweetbot 3(现在使用Dynamic Type来设置他们的UITableViewCell元素)等应用程序做什么来使他们的UI看起来在不同的动态类型大小上做得好呢?这样做的最佳方法是什么?老实说似乎没有关于这个主题的教程.

objective-c uitableview ios autolayout ios7

7
推荐指数
1
解决办法
1052
查看次数

如何为缩略图快速加载图像的低分辨率版本?或者简单地说,如何最好地创建缩略图?

许多应用程序(如Tweetbot)在其表视图控制器中显示缩略图,以获得更高分辨率的图像.

例如,此图像显示的缩略图在点按时显示较大的图像:

在此输入图像描述

然而,我很困惑这些图像是如何加载的.我的想法是加载原始图像,然后缩小到缩略图大小并显示.但是,我发现这很难相信,因为图像需要花费相当多的时间来以全分辨率加载/下载,所以对每个图像执行此操作只是为了缩小它看起来需要相当长的时间.但这些似乎很快就会加载.

我也很怀疑,因为当你点击图像然后在显示全分辨率图像之前需要一秒钟加载,这让我觉得如果他们下载全分辨率之前它会暂时缓存并立即加载当用户点击它.

所以我很好奇如何实现与此应用程序中类似的缩略图系统.给定图像的链接,例如上图中显示的图像,如何快速将图像放在URL上并将其显示为缩略图

objective-c uiimageview uiimage nsdata ios

7
推荐指数
3
解决办法
3848
查看次数

我希望能够使用Storyboard左右滚动UITableViewCell.这不可能吗?

我已经尝试了所有我能想到的东西,但没有任何工作.

与iOS 7的Mail.app中的效果类似,我希望能够左右滑动表格视图的单元格.我希望能够在故事板和自动布局中执行此操作,因为我的大多数应用程序都是使用这些.我理解故事板的滚动视图通过其子视图的约束来计算其contentSize.

有了这个,我主要尝试了两种策略.第一个,只是在滚动视图中有一个标签,我可以向右或向左滑动.我将其设置为粘贴到滚动视图的顶部和底部,但标签两侧的300pts以允许滚动视图计算其contentSize.这会将标签极大地推向右侧,因此当桌面加载时我看不到它.

选项二,最好的选项是将UIView放在滚动视图中,然后将标签和诸如此类的东西放在其中,这样它们就可以全部定位为具有UIView父级的组.我试过在这里简单地设置UIView,将其设置为粘贴到滚动视图的顶部和底部,宽度设置为320,而左侧和右侧距边缘320.

这抱怨没有高度限制,但我告诉它要坚持滚动视图的顶部和底部.这怎么不算?如果单元格大小增加,滚动视图将设置为随之增长,因此我希望内部视图也在高度增长.由于某种原因,它也会横向抱怨这个位置.

在此输入图像描述

这是一个提到所有约束的示例项目.

到底是怎么回事?这是一项不可能的任务吗?

objective-c uitableview uiscrollview ios uistoryboard

7
推荐指数
1
解决办法
983
查看次数

我如何根据条件创建一个可能是多个字符串之一的常量?

我希望有一个常量使用let,可能是几个值之一.

例如:

if condition1 {
   constant = "hi"
}
else if condition2 {
   constant = "hello"
}
else if condition3 {
   constant = "hey"
}
else if condition4 {
   constant = "greetings"
}
Run Code Online (Sandbox Code Playgroud)

我不确定如何使用Swift和该let功能.但我倾向于认为这是可能的,因为这是在Swift书中:

使用let生成常量,使用var生成变量.在编译时不需要知道常量的值,但是必须为其分配一次值.

我怎么做到这一点?

swift

7
推荐指数
2
解决办法
1209
查看次数

为什么我的IBDesignable不允许我在我的自定义UIButton上使用setImage?

layoutSubviews我调用setImage()并传递它UIImage但它从未出现在Interface Builder中,但它总是出现在我运行程序时.

xcode uiview ios ios8 ibdesignable

7
推荐指数
2
解决办法
1953
查看次数

水平和垂直响应表,带粘性/固定标头?

在我正在建立的网站页面上,只会显示一个表格.无论屏幕的宽度/高度如何,我都希望桌子能够粘在屏幕的边缘.

这个表还需要有粘滞/固定的标题(所以当它们向下滚动时,标题仍然可见),我发现这很复杂,因为宽度和高度似乎需要手动设置.

此外,它需要能够水平滚动,以防有大量的列.我不希望它们都是10px宽,但是当尺寸改变时,桌子本身仍然需要粘在屏幕的边缘.

它可以在用户滚动时保持标题粘滞,但元素的宽度和高度必须全部手动设置,这意味着它无论如何都没有响应.

这有可能吗?我不反对JavaScript,但纯粹的CSS解决方案会稍微偏爱.

(JSFiddle)

body {
  margin: 0;
  padding: 0;
}
table {
  table-layout: fixed;
  border-collapse: collapse;
  width: 375px;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  -webkit-border-horizontal-spacing: 0;
}
th,
td {
  text-align: left;
  padding: 10px 10px;
  width: 105px;
  word-wrap: break-word;
  word-break: break-all;
  -webkit-hyphens: auto;
  hyphens: auto;
}
thead {
  background-color: black;
  color: #fff;
}
thead tr {
  display: block;
  position: relative;
}
tbody {
  display: block;
  overflow: auto;
  height: 300px;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <thead>
    <tr>
      <th>Longer title for testing</th> …
Run Code Online (Sandbox Code Playgroud)

html javascript css html-table responsive-design

7
推荐指数
1
解决办法
1473
查看次数

为什么我不能在Xcode 8中使用新的内联#imageLiteral语法?"返回结果中的预期表达"

我正在尝试使用#imageLiteralXcode 8中的资源文件夹中的新内联图像分配,而不是整个UIImage(named: "")语法,它只是显示的图像,如此处所示.

但是当我这样做时,当它是一个函数时,我得到错误"返回结果中的预期表达式".

这是一个简单的例子:

func img() -> UIImage {
    return #imageLiteral(resourceName: "small-checkmark")
}
Run Code Online (Sandbox Code Playgroud)

在Xcode中它显示的small-checkmark是预期的,但由于上述错误,它将无法编译.一切都为我自动完成,文件在资产文件夹(PDF).我不明白出了什么问题.如果我回来UIImage()它编译好.

我该怎么办?

xcode ios swift swift3 xcode8

7
推荐指数
1
解决办法
4990
查看次数

UIFeedbackGenerator对象创建在iOS 10.0上崩溃

有人遇到过这种情况么?特别是在运行iOS 10.0的iPhone 6上,我得到了以下崩溃的一致报告:

if #available(iOS 10.0, *) {
    UISelectionFeedbackGenerator()
}
Run Code Online (Sandbox Code Playgroud)

它甚至没有被使用,只是创建并导致EXC_BAD_ACCESS崩溃.文档称,如果设备不支持它,它就会无声地失败.奇怪的是,如果我改变检查,iOS 10.0.1它工作正常.

难道我做错了什么?

iphone ios iphone-6 ios10 uifeedbackgenerator

7
推荐指数
1
解决办法
405
查看次数