小编Axe*_*eva的帖子

UIWebView w/HTML5 Canvas&Retina Display

我的应用程序有一个UIWebView,用于提供本地内容.如果我拍摄视网膜大小的图像并将其用作身体的背景,我可以使用CSS -webkit-background-size属性使其正确缩放.这让我在iPhone 4上获得了清晰,清晰的图像.

但是,HTML5 Canvas标签不是那么合作.当我使用drawImage命令将相同的视网膜尺寸图像放入HTML5画布时,它是巨大的 - 远远超过物理屏幕的界限.这是我正在使用的代码:

ctx.drawImage(retinaImage, 0, 0)
Run Code Online (Sandbox Code Playgroud)

如果我尝试在其上放置高度和宽度参数drawImage,图片会向下缩小以适应屏幕,但它是块状和像素化的.不像CSS背景那样清脆.

有没有我可以用于HTML5 Canvas的技巧,相当于CSS -webkit-background-size属性?

谢谢!

更新:

这是我用来解决这个问题的最终代码.希望它能帮助未来的其他人:

        if (window.devicePixelRatio == 2) {
            myCanvas.setAttribute('height', window.innerHeight * 2);
            myCanvas.setAttribute('width', window.innerWidth * 2);
            ctx.scale(2, 2);
        } else {
            myCanvas.setAttribute('height', window.innerHeight);
            myCanvas.setAttribute('width', window.innerWidth);
        }
Run Code Online (Sandbox Code Playgroud)

iphone html5 canvas uiwebview retina-display

5
推荐指数
1
解决办法
5739
查看次数

为什么这个SQL导致索引扫描而不是索引搜索?

有人可以帮我调整这个SQL查询吗?

SELECT  a.BuildingID, a.ApplicantID, a.ACH, a.Address, a.Age, a.AgentID, a.AmenityFee, a.ApartmentID, a.Applied, a.AptStatus, a.BikeLocation, a.BikeRent, a.Children, 
        a.CurrentResidence, a.Email, a.Employer, a.FamilyStatus, a.HCMembers, a.HCPayment, a.Income, a.Industry, a.Name, a.OccupancyTimeframe, a.OnSiteID,
        a.Other, a.ParkingFee, a.Pets, a.PetFee, a.Phone, a.Source, a.StorageLocation, a.StorageRent, a.TenantSigned, a.WasherDryer, a.WasherRent, a.WorkLocation, 
        a.WorkPhone, a.CreationDate, a.CreatedBy, a.LastUpdated, a.UpdatedBy
FROM    dbo.NPapplicants AS a INNER JOIN
        dbo.NPapartments AS apt ON a.BuildingID = apt.BuildingID AND a.ApartmentID = apt.ApartmentID
WHERE   (apt.Offline = 0)
AND     (apt.MA = 'M')
Run Code Online (Sandbox Code Playgroud)

.

以下是执行计划的样子:

.

在此输入图像描述

我不明白的是为什么我要为NPapplicants进行索引扫描.我有一个涵盖BuildingID和ApartmentID的索引.不应该使用吗?

sql sql-server performance sql-execution-plan

5
推荐指数
1
解决办法
5847
查看次数

编码C样式的int数组

我正在编写一个支持NSCoding的类.我设置encodeWithCoderinitWithCoder,和所有的标准Objective C的数据类型,做工精细.

我正在努力的是如何编码一些简单的C数组.例如:

int bonusGrid[5];
int scoreGrid[10][10];
int solutionGrid[10][10];
int tileGrid[10][10];
Run Code Online (Sandbox Code Playgroud)

如果没有将它们分解并逐个编码每个int,我不知道如何处理它们.是否有一种"标准"方式来处理C数组?

谢谢!

iphone objective-c

5
推荐指数
1
解决办法
1142
查看次数

iOS中的动画饼图

我正在尝试在iOS中创建一个动画饼图,其行为基本上如下:

饼图进展

简而言之,它以灰色圆圈开始,随着动画的进行,箭头围绕圆圈移动,直到达到我指定的百分比.

我已经使用了Zachary Waldowski在这个SO问题中发布的示例代码:

动画CAShapeLayer Pie

这让我到了可以创建基本动画的地步.栗色馅饼的长度达到了正确的大小.我正在努力的是如何将箭头映射到动画,以便随着饼图的增长而拖动它.

有关如何实现这一目标的任何想法?

animation objective-c calayer ios pie-chart

5
推荐指数
1
解决办法
4197
查看次数

NSMutableString appendString生成SIGABRT

这对我来说毫无意义.也许有人在这里可以解释为什么会这样.

我有一个NSMutableString,我在我的iPhone应用程序的顶部分配,然后追加到稍后的过程中.它会产生一个SIGABRT,这对我来说并不重要.这是代码:

头文件(简化):

@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    NSMutableString *locationErrorMessage;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, copy) NSMutableString *locationErrorMessage;

@end
Run Code Online (Sandbox Code Playgroud)

主要的相关部分:

@implementation MyAppDelegate

@synthesize window;
@synthesize locationErrorMessage;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    self.locationErrorMessage = [[NSMutableString alloc] init];  
}

- (void)anotherFunction {
    [self.locationErrorMessage appendString: @"Blah Blah Blah"];
}
Run Code Online (Sandbox Code Playgroud)

这一切看起来都很简单.我错过了什么?

iphone objective-c nsmutablestring

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

在Xcode 4中移动本地化文件夹

我最近从Xcode 3升级到Xcode 4.2,并迁移了现有的iOS应用程序以使用这个新版本.这个应用程序已本地化,我现在想添加另一种语言.

在Xcode 4下,当我添加新的本地化时,它会在项目根目录中创建特定于国家/地区的文件夹.例如:

/fr.lproj
Run Code Online (Sandbox Code Playgroud)

但是,我以前的所有语言文件夹都在Resources子文件夹中.如:

/Resources/de.lproj
/Resources/en.lproj
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我无法弄清楚如何让Xcode 4移动新的语言文件夹Resources.我找不到任何GUI选项.如果我使用Finder移动物理文件夹,Xcode只会将引用更改为红色,但是我没有选择修复它.

有人可以帮忙吗?

更新:

以下是一些展示问题的截图(这次使用中文):

文件列表:

Xcode中的实际文件

该文件的标识部分.请注意,我无法更改它:

在此输入图像描述

xcode ios xcode4

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

从UIViewController调用UIApplicationDelegate方法

我有一个简单的iPhone应用程序,它非常类似于Apple提供的Page Control示例.它动态创建一组UIViewControllers,然后将它们添加到ScrollView.

当触摸其中一个视图上的按钮时,我需要能够在UIApplicationDelegate中调用一个方法.然后它将进行一些计算,并生成一组要显示的新视图.

我不确定如何实现这一目标.看起来这会起作用,但它不会:

[[self superview] doSomething];
Run Code Online (Sandbox Code Playgroud)

我错过了什么?谢谢.

iphone cocoa-touch objective-c

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

Objective-C中#define语句的正确位置

#define在Objective-C中放置语句的适当位置是什么?

他们在许多地方从事技术工作,但放置它们的"正确"地点是什么?

在我的.h文件中的#include语句和@interface语句之间?

#import <UIKit/UIKit.h>

#define BAR        1
#define FOO        2

@interface MyViewController : UIViewController
Run Code Online (Sandbox Code Playgroud)

或者也许在@interface声明中?

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController

#define BAR        1
#define FOO        2
Run Code Online (Sandbox Code Playgroud)

我应该遵循最佳做法吗?

objective-c ios

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

UIKit Dynamics - 缓慢移动的物体不会反弹

目标是创建一个环境,让球的图像在视图中非常缓慢地无休止地弹跳。我可以使无尽的弹跳以高速工作,但不能以慢速工作。

这是代码示例:

UIDynamicAnimator  *animator = [[UIDynamicAnimator alloc] initWithReferenceView: self.view];

UICollisionBehavior  *ballCollision = [[UICollisionBehavior alloc] initWithItems: @[largeBall, mediumBall, smallBall]];
[ballCollision setTranslatesReferenceBoundsIntoBoundary: YES];
[ballCollision setCollisionMode: UICollisionBehaviorModeBoundaries];

float force = 0.1;
int angle = 225;
NSNumber *rad = [NSNumber numberWithDouble: DEGREES_TO_RADIANS(angle)];

UIPushBehavior  *smallPush = [[UIPushBehavior alloc] initWithItems: @[smallBall] mode: UIPushBehaviorModeInstantaneous];
[smallPush setAngle: [rad floatValue]];
[smallPush setMagnitude: force];

UIDynamicItemBehavior *dynamicBehavior = [[UIDynamicItemBehavior alloc] initWithItems: @[smallBall]];
[dynamicBehavior setDensity: 0.0];
[dynamicBehavior setElasticity: 1.0];
[dynamicBehavior setFriction: 0.0];
[dynamicBehavior setResistance: 0.0];

[animator addBehavior: ballCollision];
[animator addBehavior: smallPush]; …
Run Code Online (Sandbox Code Playgroud)

uikit game-physics ios

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

手势识别器和块

我们可以使用带有手势识别器的块吗?它似乎不是这样.例如,这不起作用:

UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget: self
     action:^(id sender) {
     }
];
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或UIGestureRecognizer类不支持的块?

uigesturerecognizer ios

0
推荐指数
1
解决办法
2423
查看次数