我的应用程序有一个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) 有人可以帮我调整这个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的索引.不应该使用吗?
我正在编写一个支持NSCoding的类.我设置encodeWithCoder
和initWithCoder
,和所有的标准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数组?
谢谢!
我正在尝试在iOS中创建一个动画饼图,其行为基本上如下:
简而言之,它以灰色圆圈开始,随着动画的进行,箭头围绕圆圈移动,直到达到我指定的百分比.
我已经使用了Zachary Waldowski在这个SO问题中发布的示例代码:
这让我到了可以创建基本动画的地步.栗色馅饼的长度达到了正确的大小.我正在努力的是如何将箭头映射到动画,以便随着饼图的增长而拖动它.
有关如何实现这一目标的任何想法?
这对我来说毫无意义.也许有人在这里可以解释为什么会这样.
我有一个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)
这一切看起来都很简单.我错过了什么?
我最近从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只会将引用更改为红色,但是我没有选择修复它.
有人可以帮忙吗?
更新:
以下是一些展示问题的截图(这次使用中文):
文件列表:
该文件的标识部分.请注意,我无法更改它:
我有一个简单的iPhone应用程序,它非常类似于Apple提供的Page Control示例.它动态创建一组UIViewControllers,然后将它们添加到ScrollView.
当触摸其中一个视图上的按钮时,我需要能够在UIApplicationDelegate中调用一个方法.然后它将进行一些计算,并生成一组要显示的新视图.
我不确定如何实现这一目标.看起来这会起作用,但它不会:
[[self superview] doSomething];
Run Code Online (Sandbox Code Playgroud)
我错过了什么?谢谢.
#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)
我应该遵循最佳做法吗?
目标是创建一个环境,让球的图像在视图中非常缓慢地无休止地弹跳。我可以使无尽的弹跳以高速工作,但不能以慢速工作。
这是代码示例:
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) 我们可以使用带有手势识别器的块吗?它似乎不是这样.例如,这不起作用:
UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget: self
action:^(id sender) {
}
];
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或UIGestureRecognizer类不支持的块?
ios ×5
objective-c ×5
iphone ×4
animation ×1
calayer ×1
canvas ×1
cocoa-touch ×1
game-physics ×1
html5 ×1
performance ×1
pie-chart ×1
sql ×1
sql-server ×1
uikit ×1
uiwebview ×1
xcode ×1
xcode4 ×1