我有一个很大的问题,缩放简单UIButton.
要重现问题,只需创建一个简单的项目,其中xib包含2 UIButtons:一个要缩放,另一个用于激活缩放方法.
将UIButton被缩小为一个自定义的button,里面一些简单的文字和背景图像.
然后使用以下代码:
.H
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIButton* buttonToZoom;
}
@property (nonatomic, retain) IBOutlet UIButton* buttonToZoom;
-(IBAction)zoomIt:(id)sender;
CGPoint CGRectFindCenter(CGRect rect);
- (void) zoom:(BOOL)zoomIt animated:(BOOL)animated;
@end
Run Code Online (Sandbox Code Playgroud)
.M
#import "ViewController.h"
@implementation ViewController
@synthesize buttonToZoom;
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect theRect = self.buttonToZoom.bounds;
CGRect deleteBtnMaxiRect = CGRectMake(self.view.bounds.size.width - theRect.size.width - 10,
10,
theRect.size.width,
theRect.size.height);
CGRect deleteBtnMiniRect = CGRectMake(CGRectFindCenter(deleteBtnMaxiRect).x - 1,
CGRectFindCenter(deleteBtnMaxiRect).y - 1, …Run Code Online (Sandbox Code Playgroud) 我试图通过一个简短的测试例子来理解这些order deny,allow语句如何反应我看到的东西,直到现在.
我有以下网站结构进行测试:
将/index.htm
/.htaccess(1)
/subfolder/index.htm
/subfolder/.htaccess(2)
.htaccess(1)
order deny,allow
allow from all
Run Code Online (Sandbox Code Playgroud)
子文件夹/ .htaccess(2)
order deny,allow
deny from all
Run Code Online (Sandbox Code Playgroud)
无论我在2 .htaccess文件中使用allow,deny/deny,allow(以及所有4种可能的组合)的顺序,我都不会被允许访问子文件夹/ index.htm.
根据我的理解,至少有一个组合,其中根allow from all在子文件夹上获胜deny from all,所以我不明白为什么我不能在这个如此简单的例子上做到这一点.
你能解释一下为什么以及发生了什么吗?
我在NSDate上有一个类别,我想实现一些函数来操作日期,比如:
NSDate *thedate = [NSDate date];
[thedate setToMidnight];
Run Code Online (Sandbox Code Playgroud)
所以我在NSDate中有一个函数,如:
-(void)setToMidnight {
some code with calendars and comps
self = theNewDate;
}
Run Code Online (Sandbox Code Playgroud)
这在函数内部工作,但在该成员函数之外,日期没有改变.我理解这个故障,因为我被告知self只是在成员函数内创建的局部变量.那么,我怎样才能做到这一点呢?
当然,我本来可以写的:
thedate = [thedate dateAsMidnightDate]
or thedate = [NSDate dateAtMidnightFromDate:thedate]
Run Code Online (Sandbox Code Playgroud)
但我觉得它在实例类中更有意义,因为我不想更改日期,只是调整以前创建的一些值.
如果我做了以下事情,这会导致内存泄漏吗?
SomeClass* tmp;
NSDate* thetmpdate;
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
Run Code Online (Sandbox Code Playgroud) 有没有办法让编译器在调用未定义的选择器时发出警告?例如,我在某个地方有这个电话:
methodcall time1:[[self.H1time copy] stringValue]
Run Code Online (Sandbox Code Playgroud)
在H1time类中不再存在stringValue方法,并且编译器没有引发任何内容.
copyWithZone声明为
- (NSHour*)copyWithZone:(NSZone *)zone;
Run Code Online (Sandbox Code Playgroud)
如果我打电话,编译器会在NSHour内部发出警告[self stringValue].但不是methodcall time1:[[self.H1time copy] stringValue]
我看到这个错过只是因为在碰撞后进行了密集测试.
我希望编译器阻止我这样的错误调用.我怎么能这样做?
一些测试表明编译器可能会在上述情况下发出警告:
NSHour *titi = [NSHour hourWithString:@"00:00:00"];
id toto = [titi copy];
NSString *str2 = [toto doThis]; --- Warning : "No doThis Method found"
Run Code Online (Sandbox Code Playgroud)
另一个测试:
NSHour *titi = [NSHour hourWithString:@"00:00:00"];
NSString *str3 = [[titi copy] doThis]; --- Warning : "No doThis Method found"
Run Code Online (Sandbox Code Playgroud) 我正在阅读关于渐变的文档,我有点迷失了.我有一个视图,在该视图中,我只想在rect(小于视图)中从下到上绘制一个简单的黑色到灰色的线性渐变.如果没有子类化任何东西,我怎么能这样做(我读过许多需要子视图的东西)?
我正在寻找一种方法,就像我在各种平台上所做的一样简单.像(语言免费:-)):
blackcolor = MakeBlack();
whiteColor = MakeWhite();
startPoint = MakeStartPoint();
endPoint = MakeEndPoint();
onthisgraphicport = SetGraphicPort(self.view);
clippingRect = MakeClipRect();
DrawGradient(from:whiteColor, to:blackcolor, from:startPoint, to:endPoint, onthisgraphicport, intoThisRect:clippingRect);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我已经明白我需要子类化UIView才能在其中绘制.
我还不明白的是,我必须做的方式的哲学......
假设我有一个视图控制器,根据上下文,我可能想要在其管理的子视图或圆形,矩形或处理过的图形中绘制一条线.或者让我们说两个点在视图内移动到一个定义的矩形中,当它们接近时显示更大的点.
我如何子类化和定义子视图,使其能够只在其drawRect方法中执行此操作?
控制器如何管理超过这个简单的UIView(让我们假设你有一个视图控制器管理一个视图,里面有很多其他视图,你想在其中两个中制作一些图纸),那就知道什么是需要被绘制到正确的视图(它是一个控制器,不是吗?),可能与视图交互?绘图完成后,视图如何与控制器交互?
我已经阅读了许多关于绘图的文档(苹果,网络,论坛,教程......),但我仍然无法触及必须完成的哲学.
我有来自后置摄像头的500万像素图像.我想缩小它以将其放入ImageView而不必等待太长时间(需要登录时间到UIImageView才能显示5 MP图片).因此,我尝试了许多方法来调整图像大小/重新采样,使其适合刚屏幕分辨率(视网膜分辨率).但缩小图像大约需要1秒.
您是否知道能够将这个5MP图像尽可能快地调整到视网膜960 x 640分辨率的任何优化方式,并且至少在iPhone 4上小于0.7秒?
我想解析一个NSMutableArray,当我找到一些响应某些条件的对象时,我想将它们从数组中删除.
如果没有两个(或更多)数组用于该过程,我该怎么做?
对于那些会被诱惑说:嘿,只是不可能解析并从阵列中删除对象,我只能说,当我解析一个抽屉,我想从中删除过时的药物,我没有问题做它...当我找到一个,我把它丢弃,然后我找下一个药盒来检查.我不需要第二个抽屉.
在设备上进行测试(Iphone 4,IOS 4.2.1),当您使用MapKit/CLLocationManager时,有一个标准对话框,要求用户启用位置设置,并建议按钮进入该设置.
如果单击"确定",则此对话框似乎再也不会出现?
如何让它再次以程序方式显示以帮助用户通过该对话框进入正确的设置视图?
iphone ×4
ios ×3
objective-c ×3
cocoa ×2
cocoa-touch ×2
graphics ×2
uiview ×2
.htaccess ×1
apache ×1
assign ×1
autorelease ×1
categories ×1
gradient ×1
memory-leaks ×1
nsdate ×1
optimization ×1
parsing ×1
protection ×1
resize ×1
self ×1
settings ×1
uibutton ×1
uiimage ×1
zoom ×1