7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

地図(MapKit)でアノテーションの吹き出し文字数制限をサブタイトルでごまかす方法

Posted at

MapKitのアノテーションの吹き出しは文字数制限があり
それを超えると下記のように「...」と省略されてしまいます。

スクリーンショット 2014-06-15 01.55.40.png

文字数制限自体を解除・緩和する方法は探した限り無いようでしたが
サブタイトルの表示領域を借りる事で見た目上最後まで表示させることは出来ました。

下記のように、当然文字サイズは小さくなりますが。。。

スクリーンショット 2014-06-15 01.49.29.png

方法は以下の通りです。

objective-c
-(void)setAnnotation:(CLLocationCoordinate2D)co radius:(double)radius placeID:(int)placeID mapMove:(BOOL)mapMove animated:(BOOL)animated detail:(NSString*)detail name:(NSString*)name
{
    CustomPointAnnotation *annotation = [[CustomPointAnnotation alloc] init];

//長いタイトルをサブタイトルでごまかす(nameはNSString)
    if (name.length >= 14) {
        annotation.title = [name substringToIndex:13];
        annotation.subtitle=[name  substringFromIndex:13];
    }

[self.mapView addAnnotation:annotation];
}

表示できるのは全角13字までだったので
「13字まで」と「13字以降」の文字列を取り出すNSStringのメソッドを利用します。

7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?