小编Jan*_*les的帖子

UIImagePickerController相机预览是风景应用中的肖像

在我的仅横向iPhone应用程序中,我启动了一个UIImagePickerController来拍摄照片,但是从相机显示的实时图像是纵向的,周围有空白区域.图像旋转.

按下相机按钮后,预览非常混乱,大部分预览关闭屏幕,并且视图未正确对齐.

Apple承认这是缺陷,并正在努力.

我的问题是,是否有人有一个解决方法(合法或非法),这将使我现在能够正常工作.我不会通过非法修复发布到App Store,但我会有一个更好的应用程序用于用户测试 - 目前相机在景观中几乎无法使用.

如果可以的话,我会附上一个简单的测试项目和图像.

编辑 - 只是为了澄清,我得到的图像是正确的风景.我希望相机和预览UI看起来正确!


相机

替代文字

iphone cocoa-touch

45
推荐指数
1
解决办法
4万
查看次数

Objective-C中属性覆盖的危害是什么?

在某些情况下,您可能会覆盖超类的属性.

  1. 您声明一个属性与其超类的名称和属性相同.(因为如果您更改属性,则可以获得编译器警告).您可以使用您创建的ivar进行合成.这有什么用?或者它有什么危害呢?

  2. 如果超类在类扩展(没有名称的类别)中声明属性,则它可能不在头文件中.如果您不知道头文件中的该属性,则可以使用您想要的属性或类声明相同的名称属性.但是setter/getter方法将覆盖那个"秘密属性"的方法.我认为这只会造成伤害.但既然你不知道头文件,你怎么能避免这个?

  3. 您可以将头文件中的属性声明为"readonly",并在类扩展中将其重新声明为"readwrite".我认为这是可以做得好的情况.

我对这些情况的了解是否正确?我不知道第一和第二种情况可以做些什么.但是如果我想避免第一种情况,我可以在声明之前检查子类是否已经具有该属性.但是如果属性不在公共头文件中,就像在第二种情况下那样,我只是不知道该怎么做.

overriding properties objective-c class-extensions

18
推荐指数
1
解决办法
8372
查看次数

CoreData - 如何创建NSManagedObject的子类的子类(Generation Gap模式)

我敢肯定这一定是一个愚蠢的问题,但我已经搜索了这些互联网并找不到答案.很多人谈论使用Generation Gap模式,其中你有一个从模型生成的NSManagedObject子类,然后将其子类化以添加瞬态属性和行为.这样做的好处是,如果您更改持久模型,则可以再次生成基本文件,而不会有覆盖自己代码的危险.

我有一个从NSManagedObject派生的基本CardMO对象.然后我将其子类化为自己的Card对象.

我的问题是,如何创建一个托管的Card对象?

我试过了:

  Card* card = [NSEntityDescription insertNewObjectForEntityForName:@"CardMO" inManagedObjectContext:moc];
Run Code Online (Sandbox Code Playgroud)

但是这个对象实际上不是卡片,当然我继续在这个对象上调用Card方法时会有例外.

我尝试用alloc/init创建一个卡(其中init只调用[super init]),然后将它添加到managedObjectContext,如下所示:

[moc insertObject:(CardMO*)card];
Run Code Online (Sandbox Code Playgroud)

这给了我一个神秘的错误"无法在NSManagedObject类'Card'上调用指定的初始值设定项"

我试过通过调用[NSEntityDescription insertNewObjectForEntityForName:@"CardMO"inManagedObjectContext:[AIStoreManager sharedAIStoreManager] .managedObjectContext]而不是[super init]来修改它.在这种情况下,我回来的对象再次是CardMO,我无法在其上调用Card方法.

我该怎么办?

并且(对于奖励积分:-) - 在我通过这个障碍之后,我需要从XML创建我的其他Card对象,然后将它们转换为NSManagedObjects.我正在使用基于Apple的XMLReaderSAX的代码 - 我把这个代码交给了一大块XML,它让我回到了许多Card对象的数组.我以后可以将这些对象添加到我的托管对象上下文中,还是必须进入XMLReaderSAX并更改它创建这些对象的方式?

我在3.0上写了一个iPhone应用程序,但我认为这对于Core Data for 10.5来说是一样的.

cocoa cocoa-touch core-data

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

给定字体的字符串长度以适合UITextView

我需要将用户输入的文本移动到较大的多行中UITextView(但仍然是多行)UITextView*.如果用户输入的文本多于在较小视图中显示的文本,我想截断文本,使其适合所有可见的(截断的)文本.(无论是大的UITextView还是小的都不应该滚动.)

最好的方法是什么?

我可以使用一个循环,每次用字符缩短字符串,然后使用NSString's sizeWithFont: constrainedToSize: lineBreakMode:找出这个较短字符串所需的高度,然后将其与我在较小字符串中可用的高度进行比较UITextView,结束循环时字符串适合 - 但这似乎缓慢和尴尬.肯定有更好的办法.

我想告诉目的地UITextView截断它的displayText成员,因为它在屏幕上显示它,但我无法找到一种方法来做到这一点.

*更多关于此的背景,来自我在下面做出的评论:

我有一个风景应用程序.我根据用户选择的照片更改视图的布局.如果它是风景照片,则标题较小 - 只是照片底部的一条线.如果她选择一张肖像照片,那么我可以使用足够的空间放置照片侧面的标题,因此标题更大.

如果用户将照片方向从纵向更改为横向,则我要截断文本,然后允许她对其进行编辑以使其有意义.我可以摧毁它,但我宁愿保留它以减少她的打字.

iphone cocoa-touch ios

6
推荐指数
1
解决办法
5626
查看次数

Django电子邮件摘要

是否有现成的插件可以在Django中生成每日或每周的摘要电子邮件?(我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们.)

Django-mailer声称支持这一点,但我告诉它并不是真的.

email django django-mailer django-email

6
推荐指数
1
解决办法
1465
查看次数

给定字体的字符串长度以适合UITextView 2 - 返回

这个问题中,我要求一种截断字符串以适合给定UITextView的好方法.由于SDK没有直接提供的方法,我最终编写了下面的递归方法(仅通过以下公共方法调用).但是,除非我在计算字符串的高度时从字段宽度中减去软糖因子15(kFudgeFactor),否则这不起作用.如果我不这样做,返回的字符串对于字段来说实际上太长了,并且显示在它下面的额外行中.任何人都知道为什么,我应该使用什么而不是这个软糖因素?

#pragma mark Size string to fit the new view

#define kFudgeFactor 15.0
#define kMaxFieldHeight 9999.0

// recursive method called by the main API
-(NSString*) sizeStringToFit:(NSString*)aString min:(int)aMin max:(int)aMax
{
if ((aMax-aMin) <= 1)
    {
    NSString* subString = [aString substringToIndex:aMin];
    return subString;
    }

int mean = (aMin + aMax)/2; 
NSString* subString = [aString substringToIndex:mean];

CGSize tallerSize = CGSizeMake(self.frame.size.width-kFudgeFactor,kMaxFieldHeight);
CGSize stringSize = [subString sizeWithFont:self.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];

if (stringSize.height <= self.frame.size.height)
        return [self sizeStringToFit:aString min:mean max:aMax]; // too small
else    
        return …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch

3
推荐指数
1
解决办法
4089
查看次数