我目前正在尝试向 a 添加无限滚动UITableView,其中包含许多日历事件。由于事件标题并不总是适合单行,因此我UILabel在单元格中添加了多行。为了计算单元格的高度,我UITableView通过 iOS 8 中的自动布局利用了新的自调整单元格大小。WWDC Session 226 更详细地讨论了这一点。
为了实现无限滚动机制,我重写了layoutSubviews需要计算给定时间在屏幕上不可见的部分的高度的位置。这可以通过使用来完成[self rectForSection:0]。这样做时,表根据估计的行大小返回一个高度,我必须在表的初始化程序内定义,以便使自动调整大小的单元格工作。
self.estimatedRowHeight = 44.0;
self.rowHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)
当该部分出现在屏幕上时,我得到了该部分的正确大小,但由于我必须根据该特定部分的计算高度来更新表格的 contentOffset,这会导致我的表格上下跳跃。
关于如何解决这个问题有什么想法吗?有没有办法强制部分返回实际高度而不是估计高度?
我最近想通过使用BSD套接字来构建自己的客户端-服务器系统。某些时候,我想加入SSL来加密数据传输。我按照本教程进行操作,并使用Xcode(添加了链接器标志:-lssl -lcrypto)很好地编译了代码,但是EXC_BAD_ACCESS一旦程序到达SSL_CTX_use_certificate_file()调用位置,我就一直得到所有的时间。您可以在下面看到使用的代码。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <openssl/bio.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
int main(int argc, const char * argv[])
{
SSL_METHOD *method = NULL;
SSL_CTX *ctx = NULL;
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
method = SSLv2_server_method();
ctx = SSL_CTX_new(method);
SSL_CTX_use_certificate_file(ctx, "/Users/steve/certificate.pem", SSL_FILETYPE_PEM);
SSL_CTX_use_PrivateKey_file(ctx, "/Users/steve/key.pem", SSL_FILETYPE_PEM);
printf("Hello, World!\n");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
如果程序无法在指定的路径中找到证书,则它不会崩溃,但是我当然不会进行任何SSL加密。证书本身可能有问题吗?我只是使用以下命令通过openssl生成了一个:
# generate the key
$ openssl genrsa -out key.pem 1024
# generate request
$ openssl req -new -key key.pem -out request.pem
# fill in …Run Code Online (Sandbox Code Playgroud)