Copyright © Mike's Blog
Design by Dzignine
2012年10月6日 星期六

UILabel with Link

常常看到一些app可以直接在label上連結到打電話或是地圖之類的
這是一個很直覺跟貼心的功能 至於要怎麼實作呢?
我直接去google一下了 發現有一個很好用的TTTAttributedLabel
所以就不打算硬刻一個uilabel出來 而且這個超方便跟好用

還有如果從自己的app去開啟到其他app的方法是透過url scheme
這邊也剛好用到~不過map在ios6上的用法就不一樣了

以下範例是打電話跟開地圖(support ios6)


//一些初始化的設定
TTTAttributedLabel *label = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(10, 10, 300, 200)];
label.font = [UIFont systemFontOfSize:14.0f];
label.numberOfLines = 0;
label.lineBreakMode = UILineBreakModeCharacterWrap;
label.delegate = self;
//加上電話連結
NSRange range = [label.text rangeOfString:[data objectForKey:@"telephone"]];
[label addLinkToPhoneNumber:[data objectForKey:@"telephone"] withRange:range];
//加地址連結
range = [label.text rangeOfString:[data objectForKey:@"address"]];
NSDictionary *addressBook = @{                @"name": [data objectForKey:@"name"],
                @"lat": [data objectForKey:@"lat"],
                @"long": [data objectForKey:@"long"]
            };
[label addLinkToAddress:addressBook withRange:range];
/**    這邊就要實作點擊連結後的動作  **/
//電話連結
- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithPhoneNumber:(NSString *)phoneNumber
{
    NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",phoneNumber]];    [[UIApplication sharedApplication] openURL:phoneURL];}
//地址連結
- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithAddress:(NSDictionary *)addressComponents
{
    NSString *title = [addressComponents objectForKey:@"name"];
    float latitude = [[addressComponents objectForKey:@"lat"] floatValue];
    float longitude = [[addressComponents objectForKey:@"long"] floatValue];
  
    //for iOS6 later
    if( [MKMapItem class]) {        MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude, longitude) addressDictionary:nil];        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];        mapItem.name = title;
        [mapItem openInMapsWithLaunchOptions:nil];      
    } else {
      
        int zoom = 13;
        NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@@%1.6f,%1.6f&z=%d", title, latitude, longitude, zoom];
        NSURL *url = [NSURL URLWithString:stringURL];
        [[UIApplication sharedApplication] openURL:url];      
    }
}
2012年9月9日 星期日

新增USER on FreeBSD

今天臨時要新增一個user 我用webmin很快的直接新增user 結果在ftp上面花了一番時間 才可以正常登入上傳下載 遇到了一些問題 我在這邊記錄一下 打開 403 permission 問題:
chcon -t httpd_sys_content_t 網頁目錄
ftp 553 的問題:

setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
其實都是selinux的問題...