小编Ste*_*eld的帖子

如何更改UIPickerView高度

是否可以更改UIPickerView的高度?某些应用程序似乎有较短的PickerViews,但设置较小的框架似乎不起作用,框架在Interface Builder中被锁定.

iphone cocoa-touch uipickerview uikit ios

113
推荐指数
11
解决办法
13万
查看次数

UINavigationController和autorotation

我有一个返回一个UIViewController YESshouldAutorotateToInterfaceOrientation:UIDeviceOrientationPortraitNO其他一切.在堆栈顶部的那个视图中,我pushViewController:animated:用来推动一个新的UIViewController.新控制器返回YES任何内容shouldAutorotateToInterfaceOrientation:.

第一个视图拒绝旋转(如预期的那样).按下第二个视图后,用户可以旋转设备,UI将旋转(也如预期).如果第二个视图处于横向模式并且用户按下后退按钮(调用popViewControllerAnimated:),则第一个视图将显示为旋转(意外!).

如果用户将设备旋转回纵向,则视图将旋转,然后像以前一样卡在纵向模式中.这可行,但对于用户来说,它们会旋转回来之前很难看.所以我正在寻找一种让这种观点保持纵向模式的方法.

到目前为止我找到的唯一解决方法是使用-[UIDevice setOrientation:],它会抛出一个警告(orientation只读),但是因为实际定义了它.这是一个巨大的黑客,我想要一个真正的解决方案.为了寻找真正的解决方案,我将GDB附加到了Photos应用程序(MobileSlideshow.app)并发现它也使用了-[UIDevice setOrientation:].作为一个内部应用程序虽然我猜他们有不同的规则.

有没有正确的方法来实现预期的自转行为?

iphone cocoa-touch rotation uinavigationcontroller

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

字符串文字中的Sqlite绑定

使用sqlite3,如果我的查询是

SELECT * FROM table WHERE title LIKE '%x%'

它将匹配包含的字符串x.我想创建x一个可绑定的参数,如:

SELECT * FROM table WHERE title LIKE '%x?%'

但是,这不起作用,因为''形成一个字符串文字.有没有办法逃避?文字内部?我知道我可以构建可绑定参数来包含%然后使用

SELECT * FROM table WHERE title LIKE ?

但是在处理SQL注入而不是绑定接口方面,这会将责任转移到我的代码中.这有更好的解决方案吗?

sql sqlite binding

23
推荐指数
1
解决办法
5656
查看次数

glutPassiveMotionFunc和glutWarpMousePointer

我想在OpenGL/GLUT窗口中实现自己的光标.通常的做法是冻结光标(因此无法触及屏幕边缘)并自行跟踪其位置.我可以使用屏幕上的光标隐藏

glutSetCursor(GLUT_CURSOR_NONE);
Run Code Online (Sandbox Code Playgroud)

然后在我的glutPassiveMotionFunc回调内部使用指针移动指向窗口的中间位置

int centerX = (float)kWindowWidth / 2.0;
int centerY = (float)kWindowHeight / 2.0;

int deltaX = (x - centerX);
int deltaY = (y - centerY);

mouseX += deltaX / (float)kWindowWidth;
mouseY -= deltaY / (float)kWindowHeight;

glutWarpPointer( centerX, centerY );
Run Code Online (Sandbox Code Playgroud)

这样可以保持指针卡在窗口中间.问题是,当我绘制'OpenGL'鼠标(在glutDisplayFunc()回调内部)时,它非常生涩.

我在网上看了一下,发现可能存在一个问题,即glutWarpPointer()导致再次调用glutPassiveMotionFunc回调,导致循环,但这似乎不会发生在这里.

我在Mac OS X上发现了一篇帖子,说CGDisplayMoveCursorToPoint更适合这个.调用CGDisplayMoveCursorToPoint可以工作,但运动仍然非常不稳定(我似乎得到很多事件,其中x和y都是0).在任何情况下,我都希望这能在Linux上运行,因此只有Mac的解决方案并不理想(但我不得不在不同的系统上做不同的事情).

我已将其缩减为测试用例.

#include <stdio.h>
#include <OpenGL/OpenGL.h>
#include <GLUT/GLUT.h>

int curX = 0;
int curY = 0;

void display() {
    glClearColor( 0.0, 0.0, 0.0, 1.0 );
    glClear( GL_COLOR_BUFFER_BIT );

    float vx = (float)curX / 300.0 + …
Run Code Online (Sandbox Code Playgroud)

opengl macos mouse glut

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

你能使用 git 浅克隆 2 个分支吗?

我想浅克隆存储库的一部分:只有 1 个功能分支(包括从 分支以来的所有提交)和之前的main一些提交。main

我已经尝试过git clone $repo --depth=N --branch=$feature正确检查 $feature 的浅克隆,并且假设我选择足够大的深度返回到分支点。

拉入 main 的咒语是什么?

本质上我希望能够做到:

git clone --branch=$feature
BASE=$(git merge-base $feature origin/main)
echo git rev-parse $BASE^
echo git rev-parse $BASE^^
echo git rev-parse $BASE^^^
Run Code Online (Sandbox Code Playgroud)

告诉我在分支之前发生的几次提交的 SHA1。

git git-clone git-branch

5
推荐指数
0
解决办法
910
查看次数

iPhone间歇性网络测试

我已经看过"测试具有有限网络访问权限的iPhone应用程序"(链接)问题,虽然这是一个很好的提示,但在通过EDGE使用时测试一段代码的实际性能方面并不是很有帮助.根据我的经验,网络将随机进入连接状态.我想用某种方法模拟这个.我正在考虑sqlite如何自动测试malloc.

这些已检测的malloc可以设置为仅失败一次然后再次开始工作,或者在第一次失败后继续失败.OOM测试在循环中完成.在循环的第一次迭代中,检测到的malloc在第一次分配时被操作失败.然后执行一些SQLite操作并进行检查以确保SQLite正确处理OOM错误.然后将仪表化的malloc上的故障时间计数器增加1并重复测试.循环继续,直到整个操作运行完成,而不会遇到模拟的OOM故障.像这样的测试运行两次,一次将检测的malloc设置为仅失败一次,并且再次使用检测的malloc设置为在第一次失败后连续失败"

我已经做了一些谷歌搜索,但我想知道是否有一个很好的工具来做到这一点.我想用我的开发机器模拟服务器和通过WiFi连接的iPhone.

iphone testing networking

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