一:如何最快获取绝对路径:直接把某个文件或文件夹,拖动到文本输入框,路径会自动显示出来——这是很多人头疼的一个问题。
二:按住command+alt键,拖动,可创建快捷方式
三:随机数的使用头文件的引用 #import#importsrandom()的使用
srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF));
直接使用 random() 来调用随机数
四:查询App信息 http://itunes.apple.com/lookup?id=284910350
五:UIImageview中旋转图像
float rotateAngle = M_PI;
CGAffineTransform transform =CGAffineTransformMakeRotation(rotateAngle);
imageView.transform = transform;
以上代码旋转imageView, 角度为rotateAngle, 方向可以自己测试哦
六:1.网上搜索字体文件(后缀名为.ttf,或.odf)
2.把字体库导入到工程的resouce中
3.在程序viewdidload中加载一下一段代码
NSArray *familyNames = [UIFont familyNames];
for( NSString *familyName in familyNames ){
printf( "Family: %s \\n", [familyName UTF8String] );
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
for( NSString *fontName in fontNames ){
printf( "\\tFont: %s \\n", [fontName UTF8String] );
}
}
4.假如你加入的字体为微软雅黑,这时可以在NSLog中看到MicrosoftYaHei
5.然后在你的工程的Info.plist文件中新建一行(Add Row),添加key为:UIAppFonts,类型为Array或Dictionary都行;在UIAppFonts下再建立一个键值对,key为:Item 0,添加Value为XXX.tte为XXX.tte为XXX.ttf(你字体的名字,string型),可以添加多个
6.在你的项目里要用字体的时候 xx.font = [UIFont fontWithName:@"MicrosoftYaHei" size:20.0],这样就可以了。
七:.UITextView根据文本修改高度
首先根据文本计算高度:
UIFont *font = [UIFont systemFontOfSize:14.0];
CGSize size = [m_textView.text sizeWithFont:font constrainedToSize:CGSizeMake(240,9999) lineBreakMode:UILineBreakModeWordWrap];
//constrainedToSize的两个参数其实我也没搞明白,可能第一个参数是textView的宽度,第二个参数还没搞懂,可以指教一下。
然后修改textView的高度—[m_textView setFrame:CGRectMake(52, 104, 240, size.height+30)];
八:UITableViewCell 重用问题—解决在cell中添加其他控件时,滚动后重复加载,文字重影,控件错乱的情况
NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d%d", [indexPath section], [indexPath row]];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//添加代码}
九:禁止程序运行时自动锁屏
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
十:实现某个view点一下就移除时,要防止移除两次。(此方法适用于希望GestureRecognizer只执行一次的情况)
-(void)OnTapViewTobeRemoved:(UITapGestureRecognizer *)sender{
if (!sender.enabled) {
return;
}
sender.enabled = NO;
[sender.view removeFromSuperview];}
十一:禁止textField和textView的复制粘贴菜单:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if ([UIMenuController sharedMenuController]) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;}
十二:如何进入软件在app store 的页面:
先用iTunes Link Maker找到软件在访问地址,格式为itms-apps://ax.itunes.apple.com/...,然后
#define ITUNESLINK @"itms-apps://ax.itunes.apple.com/..."
NSURL *url = [NSURL URLWithString:ITUNESLINK];
if([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];}如果把上述地址中itms-apps改为http就可以在浏览器中打开了。可以把这个地址放在自己的网站里,链接到app store。
iTunes Link Maker地址:http://itunes.apple.com/linkmaker
十三:判断一个字符串是否包含另一个字符串:
[str1 rangeOfString:str2].length != 0 ? @"包含" : @"不包含"
十四:设置label ,imageview,等点击时事件
UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImage:)];
// [imageView setUserInteractionEnabled:YES]; 如果不能点击,设置可编辑
[imageView addGestureRecognizer:imageTap];
十五:根据当前键盘的高度来设置UITextField的位置
- (void)textFieldDidBeginEditing:(UITextField *)textField{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardDidShowNotification object:nil];}
- (void)keyboardWillShow:(id)sender {
CGRect keyboardFrame;
[[[((NSNotification *)sender) userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardFrame];
CGFloat keyboardHeight = CGRectGetHeight(keyboardFrame);
[self.textImageView setFrame:CGRectMake(0, 416-keyboardHeight, 320, 45)];}
十六:计算当前label随字体增加的长度(单行)
CGSize boundingSize = CGSizeMake(320.0f, CGFLOAT_MAX);
CGSize requiredSize = [status.user.username sizeWithFont:[UIFont boldSystemFontOfSize:13] constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];
CGFloat requiredWidth = requiredSize.width;
十七:计算UIlabel 随字体多行后的高度
+ (CGFloat)calcTextHeight:(int)textWidth text:(NSString *)text font:(int)fontSize {
CGRect bounds, result;
bounds = CGRectMake(0, 0, textWidth, 300);
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.font = [UIFont systemFontOfSize:fontSize];
label.text = text;
result = [label textRectForBounds:bounds limitedToNumberOfLines:20];
return result.size.height;
}
或者CGSize requiredSize = [introduceLabel.text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(296.0f, FLT_MAX) lineBreakMode:UILineBreakModeTailTruncation];
文中内容都是项目实践过程中解决问题中自己遇到过并且用过的,也有些平时自己收集起来的。也会随时更新,多多指教。