在iPad应用程序上,我希望能够在弹出窗口的顶部栏中有多个按钮.我这样推出它:
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
pop = [[UIPopoverController alloc] initWithContentViewController:nc];
[pop presentPopoverFromRect:CGRectInset([tableView rectForRowAtIndexPath:indexPath], 10, 10)
inView:tableView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
pop.delegate = self;
[nc release];
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad我想设置titleView包含多个UIBarButtonItems.这是正常的,UINavigationController但我需要能够执行此操作并在弹出框中保留导航栏的自定义样式.
我试过设置rightBarButtonItem一个包含按钮的工具栏,但它们采用工具栏的格式,它本身不会采用弹出窗口的格式/样式.
我现在用SFHFKeychainUtils了一段时间.在我上次更新到AppStore时,它突然"忘记"了我的用户密码.这意味着,当调用getPasswordForUsername相同的用户名和服务时,它现在不会返回结果.我不打印错误变量,所以我不知道它是否返回任何东西,我只知道它不会返回密码/任何字符串.我已经尝试通过安装旧版本然后在其上安装新版本来重现我的设备/其他调试设备上的问题,但它没有发生!工作得很好.我知道它有点模糊,但我真的不明白它来自哪里所以我无法提供更多信息.任何人都知道是什么原因引起的?在这方面你有什么最佳实践我可能会失踪吗?或者只是提示我如何调试此问题?
非常感谢!
我正在开发一个iPhone应用程序,我有一个UIViewController类,其中有一些封面流动画,根据设计,我的视图顶部有5个按钮每个按钮都有一个IBAction单击按钮的方法我需要显示不同的封面流程与不同的数据和封面流量也从1按钮动作变为另一个.我的问题是如何在点击这些按钮时刷新我的页面(重新加载),因为我知道明确调用viewDidLoad是一个非常糟糕的主意,所以我该如何实现这一目标?任何帮助都提前感谢,谢谢.
在一个应用程序中,我只想支持德语.这对我自己定义的所有文本都很好,但我无法更改系统提供的视图显示的文本,例如:取消按钮UISearchBar:

如果设备语言设置为德语,则取消按钮会正确显示"Abbrechen".但是,如果我将设备语言设置为英语(或任何其他语言),则按钮显示"取消",这是不正确的,因为应用程序中的所有内容都是德语,所以我也希望这个按钮也是德语.是否有可能完成这项工作?我做错了什么?
UIViewController的searchDisplayController属性的内容视图的nib 也在de.lproj文件夹中.我已将.pbxproj中的开发区域设置为德语:
developmentRegion = de;
Run Code Online (Sandbox Code Playgroud)我在Info.plist文件中将"Localization native development region"设置为"de":
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
Run Code Online (Sandbox Code Playgroud)我使用a UICollectionView来显示从URL异步加载的图片网格.我的集合视图使用可重用单元格来显示UICollectionViewCells.当不重复使用单元格时,所有内容都会正确显示,但是当我滚动一下时,重用的单元格会在它们开始正常行为之前短暂闪烁旧内容.
以下是自定义的实现UICollectionViewController:
#import "MyCollectionViewViewController.h"
#import "MyCollectionViewCell.h"
@interface MyCollectionViewViewController ()
@property (strong, nonatomic) NSArray *data;
@end
@implementation MyCollectionViewViewController
@synthesize data = _data;
- (void)viewDidLoad
{
[super viewDidLoad];
self.data = @[
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-851-1358529670-4.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr03/2013/1/18/11/enhanced-buzz-wide-26311-1358526816-5.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr03/2013/1/18/11/enhanced-buzz-wide-26311-1358527190-11.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr02/2013/1/18/11/enhanced-buzz-wide-7517-1358526694-11.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr03/2013/1/18/11/enhanced-buzz-wide-1965-1358527802-7.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr03/2013/1/18/11/enhanced-buzz-wide-2165-1358527708-14.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr03/2013/1/18/11/enhanced-buzz-wide-1965-1358527894-12.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr02/2013/1/18/12/enhanced-buzz-wide-15957-1358529198-18.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr02/2013/1/18/12/enhanced-buzz-wide-16520-1358528981-9.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr02/2013/1/18/12/enhanced-buzz-wide-16517-1358529292-5.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-20349-1358529323-20.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-32444-1358529959-9.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-32343-1358530043-7.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr02/2013/1/18/12/enhanced-buzz-wide-23646-1358530321-2.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-28223-1358530801-15.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-32273-1358530695-16.jpg",
@"http://s3-ec.buzzfed.com/static/enhanced/webdr01/2013/1/18/12/enhanced-buzz-wide-31288-1358531103-16.jpg"
];
[self.collectionView registerNib:[UINib nibWithNibName:@"MyCollectionViewCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"myView"];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
NSString *urlString = [self.data objectAtIndex:indexPath.item];
MyCollectionViewCell *myView = [collectionView dequeueReusableCellWithReuseIdentifier:@"myView" forIndexPath:indexPath];
myView.urlString = …Run Code Online (Sandbox Code Playgroud) 我已经阅读了我认为是Quartz 2D Programming Guide的相关部分,但无法找到以下答案(他们似乎没有在文档中谈论iOS):
我的应用程序在a中显示绘图UIView.我不得不以某种方式更新绘图,例如更改其中一个形状的填充颜色(我保留CGPathRefs重要的形状,以便以后可以用不同的填充颜色重绘它们).如上述文档第169页的"使用CGLayer绘图"一节中所述,我正在考虑将整个绘图绘制成CGContext我将从中获取的绘图CGLayer,如下所示:
CGContextRef offscreenContext = CGLayerGetContext(offscreenLayer);
Run Code Online (Sandbox Code Playgroud)
然后我可以在屏幕上更新屏幕CGContext并CGLayer在UIViewdrawRect:方法中绘制到我的UIView中,如下所示:
CGContextDrawLayerAtPoint(viewContext, CGPointZero, offscreenLayer);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,我CGLayer从哪里得到我的?我的理解是我必须使用它CGLayerCreateWithContext并提供CGContext一个参数,从中继承它的大部分属性.显然,正确的背景将是UIView我所接受的背景
CGContextRef viewContext = UIGraphicsGetCurrentContext();
Run Code Online (Sandbox Code Playgroud)
但是如果我没有弄错的话,我只能在drawRect:方法中得到它,并且假设下次调用该方法时我给出的上下文将是相同的一个是无效的,即我只能在CGContext本地使用它方法.
那么,我怎样才能得到一个CGContext我可以用来初始化我CGLayer创建一个屏幕CGContext来绘制然后将整个图层绘制回我UIView的CGContext?
PS:当你在它的时候; 如果上面的任何内容没有意义或没有理智,请告诉我.我刚刚开始关注Quartz 2D.
我正在iPhone应用程序中实现IAP,并且正在沙盒环境中工作。我有代码设置要处理SKProducts,SKProductsRequest以获取价格信息。我想测试不同地区(例如欧元或日元)中检索到的价格值,以测试我的格式代码。我如何SKProductsRequest返回不同的语言环境?
我使用的是苹果SecKeyWrapper从类CryptoExercise在苹果文档的示例代码做一些AES128对称加密。出于某种原因,当我加密 1-15 个字符或 17 个字符时,它会正确加密和解密。使用 16 个字符,我可以加密,但在解密时它会在CCCryptorFinal调用 with后抛出异常ccStatus == -4304,这表明解码错误。(去搞清楚。)
我知道 AES128 每个加密块使用 16 个字节,所以我的印象是该错误与落在块边界上的明文长度有关。有没有人使用CommonCryptor或遇到过这个问题SecKeyWrapper?
我有一个UIViewController在willRotateToInterfaceOrientation,我打电话[self view] setNeedsLayout];
这个视图调用它是子视图的(a UIScrollView)layoutSubviews方法,但UIScrollView不会调用layoutSubviews它的子视图.这是它的假设吗?我想如果你打电话setNeedsLayout给一个视图,它会调用layoutSubviews每个子视图和他们的子视图,然后...
我一定要手动,覆盖layoutsubview在UIScrollView并调用setNeedsDisplay每个子视图?
谢谢.
我正在编写一个iPhone应用程序,它从相机中获取视频,通过一些OpenGL着色器代码运行它,然后使用输出将视频文件写入视频文件AVFoundation.该应用程序以lanscape方向运行(或者),因此所有录制的视频都应该是横向的.
我在开始录制之前使用的当前代码以正确的方式获取视频:
[[self videoWriterInput] setTransform:CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI), -1.0, 1.0)];
Run Code Online (Sandbox Code Playgroud)
其中videoWriterInput是一个实例,AVAssetWriterInput其目的是补偿OpenGL的横向模式和崇敬的方向.
这会生成在Quicktime播放器上下载和播放时正常播放的视频.但是,如果我将录制的视频添加到iPhone照片库中,缩略图会正确显示,但如果手机是横向拍摄的,则视频会旋转90度.如果手机处于纵向状态,则视频可以正常播放,但会水平裁剪以适合纵向尺寸.
根据Apple技术说明AVCaptureVideoDataOutput,我用于处理视频帧的捕获输出不支持设置视频方向.
有没有人成功录制了横向生成的视频,可以添加到iPhone库并在风景中正确播放,如果是这样的话?
ios ×10
iphone ×6
ipad ×3
objective-c ×3
aes ×1
avfoundation ×1
camera ×1
cocoa-touch ×1
ios6 ×1
keychain ×1
orientation ×1
quartz-2d ×1
uiview ×1
xcode ×1