在我的仅横向iPhone应用程序中,我启动了一个UIImagePickerController来拍摄照片,但是从相机显示的实时图像是纵向的,周围有空白区域.图像旋转.
按下相机按钮后,预览非常混乱,大部分预览关闭屏幕,并且视图未正确对齐.
Apple承认这是缺陷,并正在努力.
我的问题是,是否有人有一个解决方法(合法或非法),这将使我现在能够正常工作.我不会通过非法修复发布到App Store,但我会有一个更好的应用程序用于用户测试 - 目前相机在景观中几乎无法使用.
如果可以的话,我会附上一个简单的测试项目和图像.
编辑 - 只是为了澄清,我得到的图像是正确的风景.我希望相机和预览UI看起来正确!
在某些情况下,您可能会覆盖超类的属性.
您声明一个属性与其超类的名称和属性相同.(因为如果您更改属性,则可以获得编译器警告).您可以使用您创建的ivar进行合成.这有什么用?或者它有什么危害呢?
如果超类在类扩展(没有名称的类别)中声明属性,则它可能不在头文件中.如果您不知道头文件中的该属性,则可以使用您想要的属性或类声明相同的名称属性.但是setter/getter方法将覆盖那个"秘密属性"的方法.我认为这只会造成伤害.但既然你不知道头文件,你怎么能避免这个?
您可以将头文件中的属性声明为"readonly",并在类扩展中将其重新声明为"readwrite".我认为这是可以做得好的情况.
我对这些情况的了解是否正确?我不知道第一和第二种情况可以做些什么.但是如果我想避免第一种情况,我可以在声明之前检查子类是否已经具有该属性.但是如果属性不在公共头文件中,就像在第二种情况下那样,我只是不知道该怎么做.
我敢肯定这一定是一个愚蠢的问题,但我已经搜索了这些互联网并找不到答案.很多人谈论使用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来说是一样的.
我需要将用户输入的文本移动到较大的多行中UITextView(但仍然是多行)UITextView*.如果用户输入的文本多于在较小视图中显示的文本,我想截断文本,使其适合所有可见的(截断的)文本.(无论是大的UITextView还是小的都不应该滚动.)
最好的方法是什么?
我可以使用一个循环,每次用字符缩短字符串,然后使用NSString's sizeWithFont: constrainedToSize: lineBreakMode:找出这个较短字符串所需的高度,然后将其与我在较小字符串中可用的高度进行比较UITextView,结束循环时字符串适合 - 但这似乎缓慢和尴尬.肯定有更好的办法.
我想告诉目的地UITextView截断它的displayText成员,因为它在屏幕上显示它,但我无法找到一种方法来做到这一点.
*更多关于此的背景,来自我在下面做出的评论:
我有一个风景应用程序.我根据用户选择的照片更改视图的布局.如果它是风景照片,则标题较小 - 只是照片底部的一条线.如果她选择一张肖像照片,那么我可以使用足够的空间放置照片侧面的标题,因此标题更大.
如果用户将照片方向从纵向更改为横向,则我要截断文本,然后允许她对其进行编辑以使其有意义.我可以摧毁它,但我宁愿保留它以减少她的打字.
是否有现成的插件可以在Django中生成每日或每周的摘要电子邮件?(我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们.)
Django-mailer声称支持这一点,但我告诉它并不是真的.
在这个问题中,我要求一种截断字符串以适合给定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) cocoa-touch ×4
iphone ×3
cocoa ×1
core-data ×1
django ×1
django-email ×1
email ×1
ios ×1
objective-c ×1
overriding ×1
properties ×1