<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Swift | ともぶろぐ</title>
	<atom:link href="https://tomoblog.net/category/programing/swift/feed/" rel="self" type="application/rss+xml" />
	<link>https://tomoblog.net</link>
	<description>welcome to tomoblog</description>
	<lastBuildDate>Mon, 05 Aug 2024 04:50:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://tomoblog.net/wp-content/uploads/2024/08/cropped-siteicon-32x32.png</url>
	<title>Swift | ともぶろぐ</title>
	<link>https://tomoblog.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Swift】座標を指定するCGRect・CGSize・CGPointの違いまとめ。</title>
		<link>https://tomoblog.net/programing/swift/cgrect-cgsize-cgpoint/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cgrect-cgsize-cgpoint</link>
					<comments>https://tomoblog.net/programing/swift/cgrect-cgsize-cgpoint/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Thu, 26 Oct 2023 11:53:27 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=8510</guid>

					<description><![CDATA[<p>今回の記事はSwiftの座標を指定するCGRect・CGSize・CGPointの違いをまとめた記事です。画面表示で座標を指定してオブジェクトを描写するのはアプリ開発においては必須と思われるので、座標系で詰まっている方は [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/cgrect-cgsize-cgpoint/">【Swift】座標を指定するCGRect・CGSize・CGPointの違いまとめ。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwiftの座標を指定するCGRect・CGSize・CGPointの違いをまとめた記事です。画面表示で座標を指定してオブジェクトを描写するのはアプリ開発においては必須と思われるので、座標系で詰まっている方は是非参考にしてみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Swiftの座標系とは？</a><ol><li><a href="#toc2" tabindex="0">CGRect</a></li><li><a href="#toc3" tabindex="0">CGSize</a></li><li><a href="#toc4" tabindex="0">CGPoint</a></li></ol></li><li><a href="#toc5" tabindex="0">CGRect・CGSize・CGPointの違い</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Swiftの座標系とは？</span></h2>



<p>Swiftの座標系、特に画面描写に限定した座標は下記3つです。</p>



<ul class="wp-block-list">
<li>CGRect</li>



<li>CGSize</li>



<li>CGPoint</li>
</ul>



<p>それぞれ順番に解説していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">CGRect</span></h3>



<p>CGRectはX座標、Y座標、縦、横を指定する座標系です。画像で表すと下記です。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="306" height="181" src="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.18.34.png" alt="" class="wp-image-891" srcset="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.18.34.png 306w, https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.18.34-300x177.png 300w" sizes="(max-width: 306px) 100vw, 306px" /></figure>



<p>これをSiwftコードを記載すると下記のように表現できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>// 座標をセット
CGRect rect = CGRectMake(10, 20, 100, 80);
// 各座標を出力する
print(rect.origin.x)//10
print(rect.origin.y)//20
print(rect.size.width)//100
print(rect.size.height)//80</code></pre></div>



<p>一般的にSiwftでアプリ開発をする場合で、画面にオブジェクトを表示する場合はこちらのCGRectを使用します。</p>



<h3 class="wp-block-heading"><span id="toc3">CGSize</span></h3>



<p>CGSizeは対象のオブジェクトの縦と横を指定する座標系です。画像で表すと下記のようなイメージです。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="318" height="181" src="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.27.55.png" alt="" class="wp-image-894" srcset="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.27.55.png 318w, https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.27.55-300x171.png 300w" sizes="(max-width: 318px) 100vw, 318px" /></figure>



<p>これをSiwftコードを記載すると下記のように表現できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>// 座標をセット
CGSize size = CGSizeMake(100, 50);
// 各座標の出力
print(size.width)//100
print(size.height)//50</code></pre></div>



<h3 class="wp-block-heading"><span id="toc4">CGPoint</span></h3>



<p>CGPointは対象のオブジェクトのX座標、Y座標を指定する座標系です。画像で表すと下記のようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="308" height="189" src="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.23.57-1.png" alt="" class="wp-image-893" srcset="https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.23.57-1.png 308w, https://tomoblog.net/wp-content/uploads/2020/08/スクリーンショット-2020-08-19-21.23.57-1-300x184.png 300w" sizes="(max-width: 308px) 100vw, 308px" /></figure>



<p>これをSiwftコードを記載すると下記のように表現できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>// 座標セット
CGPoint point = CGPointMake(200, 300);
// 各座標の出力
print(point.x)//200
print(point.y)//300</code></pre></div>



<h2 class="wp-block-heading"><span id="toc5">CGRect・CGSize・CGPointの違い</span></h2>



<p>座標系の違いはオブジェクトのX座標、Y座標、縦、横をどこまで指定するかという違いを持ちます。先ほどの章でも述べましたが、一般的にSwiftのアプリ開発でオブジェクト描写を行う際に使用されるのはCGRectです。</p>



<p>では、今回の記事は以上です。ほかにも多数のSwift関連の記事を記載しているので、興味があれば是非サイト内見ていってください。</p>The post <a href="https://tomoblog.net/programing/swift/cgrect-cgsize-cgpoint/">【Swift】座標を指定するCGRect・CGSize・CGPointの違いまとめ。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/cgrect-cgsize-cgpoint/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】MapKitで地図上のピン操作（表示・設置・移動・情報取得）を行う方法ご紹介。</title>
		<link>https://tomoblog.net/programing/swift/map-pin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=map-pin</link>
					<comments>https://tomoblog.net/programing/swift/map-pin/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Fri, 21 Jul 2023 11:34:53 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=7200</guid>

					<description><![CDATA[<p>今回の記事はSwift関連の記事で、MapKitで地図上のピン操作（表示・設置・移動・情報取得）を行う方法をご紹介する記事です。どれもiOSアプリで地図アプリを作成しようと考えている方は必要な操作と思われます。是非参考に [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/map-pin/">【Swift】MapKitで地図上のピン操作（表示・設置・移動・情報取得）を行う方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwift関連の記事で、MapKitで地図上のピン操作（表示・設置・移動・情報取得）を行う方法をご紹介する記事です。どれもiOSアプリで地図アプリを作成しようと考えている方は必要な操作と思われます。是非参考にしていただければ幸いです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">XcodeにMapKitを追加</a></li><li><a href="#toc2" tabindex="0">MapKitで地図を表示</a></li><li><a href="#toc3" tabindex="0">MapKitで地図上にピンを表示する方法</a></li><li><a href="#toc4" tabindex="0">MapKitで地図に緯度経度を指定してピンを表示</a></li><li><a href="#toc5" tabindex="0">タッチしたピンのタイトルや情報を取得する方法</a></li><li><a href="#toc6" tabindex="0">MapKitで地図を長押ししてピンを設置</a></li><li><a href="#toc7" tabindex="0">MapKitで地図の設置したピンを移動</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XcodeにMapKitを追加</span></h2>



<p>cocoapodでライブラリのインストールなどは行う必要はありません。まずは、既存のフレームワーク「MapKit.Framework」をXcodeプロジェクトに追加します。（下記図参照）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="900" height="592" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png" alt="" class="wp-image-1485" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png 900w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-300x197.png 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-768x505.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>「＋ボタン」を押すとXcode内に元々入っているフレームワークの一覧が表示されます。ここでMapなどで検索すれば「MapKit.Framework」が出てきますのでaddを押します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="609" height="667" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg" alt="" class="wp-image-1486" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg 609w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33-274x300.jpg 274w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p>これでMapKitがXcodeプロジェクトに追加されましたのでstoryboardでMapKitを使用していきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg" alt="" class="wp-image-1487" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg 1024w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-300x188.jpg 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-768x480.jpg 768w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1200x750.jpg 1200w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05.jpg 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Xcodeの右上の「＋ボタン」を押してMapKitViewをstoryboardに追加します。画面いっぱいに広げてみましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">MapKitで地図を表示</span></h2>



<p>MapKitに地図を表示させるだけの場合は、特にソースコードでの実装は不要です。</p>



<p>この地図上で何か操作を行う場合のみソースコードでの実装が必要です。</p>



<p>この状態でアプリをbuildすると下記のように地図を表示できます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png" alt="" class="wp-image-1490" width="195" height="383" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png 338w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07-153x300.png 153w" sizes="(max-width: 195px) 100vw, 195px" /></figure>



<p>では現在地を表示させていきます。</p>



<h2 class="wp-block-heading"><span id="toc3">MapKitで地図上にピンを表示する方法</span></h2>



<p>ピンを表示するには「MKPointAnnotation」というクラスが用意されており、簡単に表示できます。実装するコードは下記です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()

        let coordinate = map.userLocation.coordinate
                // ピンを生成
        let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self
        //地図にピンを立てる。
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
}</code></pre></div>



<p>少し解説します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>@IBOutlet weak var map: MKMapView!</code></pre></div>



<p>まずは、MapKitViewをstoryboardに配置し、IBOutletでViewControllerに接続します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self</code></pre></div>



<p>次に上記コードの箇所でピンを地図上に表示させています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" src="https://tomoblog.net/wp-content/uploads/2020/09/IMG_CBC5C432FD6E-1-576x1024.jpeg" alt="" class="wp-image-1511" srcset="https://tomoblog.net/wp-content/uploads/2020/09/IMG_CBC5C432FD6E-1-576x1024.jpeg 576w, https://tomoblog.net/wp-content/uploads/2020/09/IMG_CBC5C432FD6E-1-169x300.jpeg 169w, https://tomoblog.net/wp-content/uploads/2020/09/IMG_CBC5C432FD6E-1.jpeg 750w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<h2 class="wp-block-heading"><span id="toc4">MapKitで地図に緯度経度を指定してピンを表示</span></h2>



<p>ピンを表示する場所を指定の緯度経度に設定することもできます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
        
        // ロケーションマネージャーのセットアップ

                // 現在地に照準を合わす


                // 指定値にピンを立てる
                // ピンを立てたい緯度・経度をセット
        let coordinate = CLLocationCoordinate2DMake(40.0, 135.0)
                // 今回は現在地ではないのでコメントアウト
        //let coordinate = map.userLocation.coordinate
                // ピンを生成
        let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self
        //地図にピンを立てる。
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
}</code></pre></div>



<p>下記の実装部分が座標を指定している部分です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>let coordinate = CLLocationCoordinate2DMake(40.0, 135.0)

...

pin.coordinate = coordinate</code></pre></div>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">タッチしたピンのタイトルや情報を取得する方法</span></h2>



<p>タッチしたピンの情報を取得することはよくあると思います。ピンに設定したタイトルや情報を取得する実装は下記です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        

        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
        
        // ロケーションマネージャーのセットアップ

                // 現在地に照準を合わす


                // 指定値にピンを立てる
                // ピンを立てたい緯度・経度をセット
        let coordinate = CLLocationCoordinate2DMake(40.0, 135.0)
                // 今回は現在地ではないのでコメントアウト
        //let coordinate = map.userLocation.coordinate
                // ピンを生成
        let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self
        //地図にピンを立てる。
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
　　func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
        if let annotation = view.annotation{
            print(annotation.title!!)
            print(annotation.coordinate)
            print(annotation.title)
            print(annotation.subtitle)
        } else {
            print(&quot;no&quot;)
        }
        // タップされたピンの位置情報
        
        
    }
 }</code></pre></div>



<p>下記のメソッドが値を取得します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
        if let annotation = view.annotation{
            print(annotation.title!!)
            print(annotation.coordinate)
            print(annotation.title)
            print(annotation.subtitle)
        } else {
            print(&quot;no&quot;)
        }   
    }</code></pre></div>



<p></p>



<h2 class="wp-block-heading"><span id="toc6">MapKitで地図を長押ししてピンを設置</span></h2>



<p>ここからはクリックした座標を取得する必要があります。画面のクリック情報を取得するためには下記設定をXcodeに追加する必要があります。Xcode右上の「＋マーク」から「Long Pless gesture Recognizer」をMapKitViewに追加します。</p>



<p>これが長押しを検知するオブジェクトのようなものです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="889" height="462" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-16-20.18.15.png" alt="" class="wp-image-1514" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-16-20.18.15.png 889w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-16-20.18.15-300x156.png 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-16-20.18.15-768x399.png 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<p>そして、上図の左側のウィンドウに追加された「Long Press Gesture Recognizer」をViewControllerにIBActionで接続します。</p>



<p>アクションは下記のように「UILongPressGestureRecognizer」を選んでください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="287" height="135" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-16-20.20.37.png" alt="" class="wp-image-1515"/></figure>



<p>これで、画面の長押しの座標を取得できるようになったので、実際にMapKitで長押しの座標を取得し、その座標にピンを配置していきましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
        
        // ロケーションマネージャーのセットアップ
                // 指定値にピンを立てる
                // ピンを立てたい緯度・経度をセット
        let coordinate = CLLocationCoordinate2DMake(35.45, 139.56)
                // 今回は現在地とする
        //let coordinate = map.userLocation.coordinate
                // ピンを生成
        let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self
        //地図にピンを立てる。
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
    

    @IBAction func pressMap(_ sender: UILongPressGestureRecognizer) {
        
        let location:CGPoint = sender.location(in: map)
        
        if (sender.state == UIGestureRecognizer.State.ended){
                   //タップした位置を緯度、経度の座標に変換する。
            let mapPoint:CLLocationCoordinate2D = map.convert(location,toCoordinateFrom: map)
                   
                   //ピンを作成してマップビューに登録する。
            let annotation = MKPointAnnotation()
            annotation.coordinate = CLLocationCoordinate2DMake(mapPoint.latitude, mapPoint.longitude)
            annotation.title = &quot;ピン&quot;
            annotation.subtitle = &quot;\(annotation.coordinate.latitude), \(annotation.coordinate.longitude)&quot;
            map.addAnnotation(annotation)
        }
    }
}
</code></pre></div>



<p>少し解説します。</p>



<p>今までのコードも混ざってしまっていますが、長押しでピンを設置する部分は下記箇所です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>@IBAction func pressMap(_ sender: UILongPressGestureRecognizer) {
        
        let location:CGPoint = sender.location(in: map)
        
        if (sender.state == UIGestureRecognizer.State.ended){
                   //タップした位置を緯度、経度の座標に変換する。
            let mapPoint:CLLocationCoordinate2D = map.convert(location,toCoordinateFrom: map)
                   
                   //ピンを作成してマップビューに登録する。
            let annotation = MKPointAnnotation()
            annotation.coordinate = CLLocationCoordinate2DMake(mapPoint.latitude, mapPoint.longitude)
            annotation.title = &quot;ピン&quot;
            annotation.subtitle = &quot;\(annotation.coordinate.latitude), \(annotation.coordinate.longitude)&quot;
            map.addAnnotation(annotation)
        }
    }</code></pre></div>



<p></p>



<h2 class="wp-block-heading"><span id="toc7">MapKitで地図の設置したピンを移動</span></h2>



<p>次はピンを移動させてみます。</p>



<p>先ほどは長押しで設置を行ったのでこの原理と同じです。</p>



<p>長押しした箇所ではなく画面でドラッグを行った指が最後に触れてい箇所にピンを設置すれば良いです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    let annotation = MKPointAnnotation()
    override func viewDidLoad() {
        super.viewDidLoad()
        tionManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()

                // ピンを立てたい緯度・経度をセット
        let coordinate = CLLocationCoordinate2DMake(35.45, 139.56)
                // 今回は現在地とする
        //let coordinate = map.userLocation.coordinate
                // ピンを生成
        let pin = MKPointAnnotation()
                // ピンのタイトル・サブタイトルをセット
        pin.title = &quot;テストタイトル&quot;
        pin.subtitle = &quot;テストサブタイトル&quot;
                // ピンに一番上で作った位置情報をセット
        pin.coordinate = coordinate
                // mapにピンを表示する
        map.addAnnotation(pin)
        
        map.delegate = self
        //地図にピンを立てる。
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
    

    @IBAction func pressMap(_ sender: UILongPressGestureRecognizer) {
        
        let location:CGPoint = sender.location(in: map)
        
        if (sender.state == UIGestureRecognizer.State.ended){
                   //タップした位置を緯度、経度の座標に変換する。
            let mapPoint:CLLocationCoordinate2D = map.convert(location,toCoordinateFrom: map)
                   
                   //ピンを作成してマップビューに登録する。
            
            annotation.coordinate = CLLocationCoordinate2DMake(mapPoint.latitude, mapPoint.longitude)
            annotation.title = &quot;ピン&quot;
            annotation.subtitle = &quot;\(annotation.coordinate.latitude), \(annotation.coordinate.longitude)&quot;
            map.addAnnotation(annotation)
        }
    }
    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -&gt; MKAnnotationView? {
        
        let testView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: nil)
        
        //吹き出しを表示可能にする。
        testView.canShowCallout = true
        return testView
    }
}
</code></pre></div>



<p>先ほどとの差はピンのオブジェクト部に当たる「let annotation = MKPointAnnotation()」をクラスの共有部で宣言し、共有して使用できるようにしております。</p>



<p></p>



<p>では長くなりましたが今回の記事は以上です。ピン操作に関してかなり網羅できたのではないでしょうか？</p>



<p>他にもSwift関連の記事を多数記載しているので興味あればサイト内みていってください。</p>The post <a href="https://tomoblog.net/programing/swift/map-pin/">【Swift】MapKitで地図上のピン操作（表示・設置・移動・情報取得）を行う方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/map-pin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】MapKitで現在地を表示する方法。</title>
		<link>https://tomoblog.net/programing/swift/mapkit-mylocation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mapkit-mylocation</link>
					<comments>https://tomoblog.net/programing/swift/mapkit-mylocation/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Thu, 20 Jul 2023 13:12:56 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=7207</guid>

					<description><![CDATA[<p>今回の記事はSwiftでiOSアプリに地図を表示するMapKitを使って現在地を表示する方法に関する記事です。地図アプリで現在地を表示することはよくあると思います。MapKitを使って現在地を表示させたいと考えている方は [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/mapkit-mylocation/">【Swift】MapKitで現在地を表示する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwiftでiOSアプリに地図を表示するMapKitを使って現在地を表示する方法に関する記事です。地図アプリで現在地を表示することはよくあると思います。MapKitを使って現在地を表示させたいと考えている方は是非参考にしてみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">XcodeにMapKitを追加</a></li><li><a href="#toc2" tabindex="0">MapKitで地図を表示</a></li><li><a href="#toc3" tabindex="0">MapKitで現在地を表示する方法</a><ol><li><a href="#toc4" tabindex="0">「info.plist」に現在地取得の設定を追加</a></li><li><a href="#toc5" tabindex="0">MapKitの設定</a></li><li><a href="#toc6" tabindex="0">現在地を表示させるソースコード実装</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XcodeにMapKitを追加</span></h2>



<p>cocoapodでライブラリのインストールなどは行う必要はありません。まずは、既存のフレームワーク「MapKit.Framework」をXcodeプロジェクトに追加します。（下記図参照）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="900" height="592" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png" alt="" class="wp-image-1485" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png 900w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-300x197.png 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-768x505.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>「＋ボタン」を押すとXcode内に元々入っているフレームワークの一覧が表示されます。ここでMapなどで検索すれば「MapKit.Framework」が出てきますのでaddを押します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="609" height="667" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg" alt="" class="wp-image-1486" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg 609w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33-274x300.jpg 274w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p>これでMapKitがXcodeプロジェクトに追加されましたのでstoryboardでMapKitを使用していきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg" alt="" class="wp-image-1487" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg 1024w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-300x188.jpg 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-768x480.jpg 768w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1200x750.jpg 1200w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05.jpg 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Xcodeの右上の「＋ボタン」を押してMapKitViewをstoryboardに追加します。画面いっぱいに広げてみましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">MapKitで地図を表示</span></h2>



<p>MapKitに地図を表示させるだけの場合は、特にソースコードでの実装は不要です。</p>



<p>この地図上で何か操作を行う場合のみソースコードでの実装が必要です。</p>



<p>この状態でアプリをbuildすると下記のように地図を表示できます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png" alt="" class="wp-image-1490" width="195" height="383" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png 338w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07-153x300.png 153w" sizes="(max-width: 195px) 100vw, 195px" /></figure>



<p>では現在地を表示させていきます。</p>



<h2 class="wp-block-heading"><span id="toc3">MapKitで現在地を表示する方法</span></h2>



<p>上記までの流れで、地図を表示させるところまではできたと思います。では次に初期表示を現在地にしてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">「info.plist」に現在地取得の設定を追加</span></h3>



<p>現在地を取得するためにはXcodeの「info.plist」に設定を追加する必要があります。</p>



<p>まずはXcodeプロジェクトのディレクトリの「info.plist」をクリックして見て下さい。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="265" height="79" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.11.46.png" alt="" class="wp-image-1501"/></figure>



<p>こちらをクリックするとたくさん表示がある一覧のページに飛びます。</p>



<p>その一覧の「infomation property list」の横の「＋マーク」をクリックしてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="388" height="70" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.12.02.png" alt="" class="wp-image-1502" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.12.02.png 388w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.12.02-300x54.png 300w" sizes="(max-width: 388px) 100vw, 388px" /></figure>



<p>すると選択欄が出てくるのでそちらで下記２項目を選んびます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="265" height="276" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.12.11.png" alt="" class="wp-image-1503"/></figure>



<ul class="wp-block-list">
<li>Privacy &#8211; Location When In Use Usage Description</li>



<li>Privacy &#8211; Location Always Usage Description</li>
</ul>



<p>この設定項目の右横に文字を入力できます。こちらがアプリで現在地を取得して良いかという許可をユーザに表示させるものです。</p>



<p>とりあえずOKなど適当な文字を設定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">MapKitの設定</span></h3>



<p>MapKitのViewにユーザの現在地を取得する設定をします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="257" height="196" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-15-21.30.43.png" alt="" class="wp-image-1504"/></figure>



<p>これでXcode関連の設定は完了です。</p>



<h3 class="wp-block-heading"><span id="toc6">現在地を表示させるソースコード実装</span></h3>



<p>次にMapKitで現在地を表示させる方法です。CLLLocationManagerDelegateを地図を表示させる画面に紐ずくViewControllerのクラスに追加します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit
import CoreLocation

class MapViewController: UIViewController,CLLocationManagerDelegate {
    @IBOutlet weak var map: MKMapView!
    
    var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
    }
    // 許可を求めるためのdelegateメソッド
    func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
            switch status {
            // 許可されてない場合
            case .notDetermined:
            // 許可を求める
                manager.requestWhenInUseAuthorization()
            // 拒否されてる場合
            case .restricted, .denied:
                // 何もしない
                break
            // 許可されている場合
            case .authorizedAlways, .authorizedWhenInUse:
                // 現在地の取得を開始
                manager.startUpdatingLocation()
                break
            default:
                break
            }
        }
  

}
</code></pre></div>



<p>コードの解説を行います。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>@IBOutlet weak var map: MKMapView!</code></pre></div>



<p>MapKitのViewをIBOutletで紐付けます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>var locationManager: CLLocationManager!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager!.requestWhenInUseAuthorization()
    }</code></pre></div>



<p>上記の部分でCLLocationManagerにユーザの現在地をセットします。「locationManager!.requestWhenInUseAuthorization()」で認証をしています。</p>



<p></p>



<p>日本全土表示させるようにしています。</p>



<p>まずは現在地を使用するためにCoreLocationをインポートします。</p>



<p>そしてlocationmanagerというものを定義してそちらで全ての管理をこなっていきます。</p>



<p>そして現在地取得のdelegateの関数を記載して後はページロード時に全て読み込みをお行えば完了です。</p>



<p>正直深くまでわからなくとも上記コードでうまくいきます。</p>



<p>ただ私が一瞬ハマった落とし穴がエミュレータではどうやらこちら現在地を取得できない様です。</p>



<p>そのため実機での検証が必要ですのでそれだけは忘れずにです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" src="https://tomoblog.net/wp-content/uploads/2020/09/IMG_3730-576x1024.jpg" alt="" class="wp-image-1506" srcset="https://tomoblog.net/wp-content/uploads/2020/09/IMG_3730-576x1024.jpg 576w, https://tomoblog.net/wp-content/uploads/2020/09/IMG_3730-169x300.jpg 169w, https://tomoblog.net/wp-content/uploads/2020/09/IMG_3730.jpg 750w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<p>では、今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので是非参考にしてみてください。</p>The post <a href="https://tomoblog.net/programing/swift/mapkit-mylocation/">【Swift】MapKitで現在地を表示する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/mapkit-mylocation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】MapKitで初期表示を緯度経度で指定する方法ご紹介。</title>
		<link>https://tomoblog.net/programing/swift/map-point/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=map-point</link>
					<comments>https://tomoblog.net/programing/swift/map-point/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Thu, 20 Jul 2023 12:39:50 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=7202</guid>

					<description><![CDATA[<p>今回の記事はSwift関連の記事で、MapKitで初期表示を緯度経度で指定する方法をご紹介する記事です。MapKitの使い方で困っている方にわかるように丁寧に記載していくので是非参考にしてみてください。 目次 Xcode [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/map-point/">【Swift】MapKitで初期表示を緯度経度で指定する方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwift関連の記事で、MapKitで初期表示を緯度経度で指定する方法をご紹介する記事です。MapKitの使い方で困っている方にわかるように丁寧に記載していくので是非参考にしてみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">XcodeにMapKitを追加</a></li><li><a href="#toc2" tabindex="0">MapKitで地図を表示</a></li><li><a href="#toc3" tabindex="0">MapKitで初期表示を緯度経度で指定する方法</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XcodeにMapKitを追加</span></h2>



<p>cocoapodでライブラリのインストールなどは行う必要はありません。まずは、既存のフレームワーク「MapKit.Framework」をXcodeプロジェクトに追加します。（下記図参照）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="900" height="592" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png" alt="" class="wp-image-1485" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png 900w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-300x197.png 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-768x505.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>「＋ボタン」を押すとXcode内に元々入っているフレームワークの一覧が表示されます。ここでMapなどで検索すれば「MapKit.Framework」が出てきますのでaddを押します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="609" height="667" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg" alt="" class="wp-image-1486" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg 609w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33-274x300.jpg 274w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p>これでMapKitがXcodeプロジェクトに追加されましたのでstoryboardでMapKitを使用していきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg" alt="" class="wp-image-1487" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg 1024w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-300x188.jpg 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-768x480.jpg 768w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1200x750.jpg 1200w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05.jpg 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Xcodeの右上の「＋ボタン」を押してMapKitViewをstoryboardに追加します。画面いっぱいに広げてみましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">MapKitで地図を表示</span></h2>



<p>MapKitに地図を表示させるだけの場合は、特にソースコードでの実装は不要です。</p>



<p>この地図上で何か操作を行う場合のみソースコードでの実装が必要です。</p>



<p>この状態でアプリをbuildすると下記のように地図を表示できます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="338" height="664" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png" alt="" class="wp-image-1490" style="aspect-ratio:195/383" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png 338w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07-153x300.png 153w" sizes="(max-width: 338px) 100vw, 338px" /></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">MapKitで初期表示を緯度経度で指定する方法</span></h2>



<p>ネット上でたまにある、「MKCoordinateRegionMake」と「MKCoordinateSpanMake」が私のXcodeのバージョンでは使用できなくなっております。そのため「MKCoordinateRegion」と「MKCoordinateSpan」を使用する必要があります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit
import MapKit


class MapViewController: UIViewController {
    @IBOutlet weak var map: MKMapView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let center = CLLocationCoordinate2DMake(41.9027, 12.4963)
         
        //表示範囲
        let span = MKCoordinateSpan(latitudeDelta: 0.07, longitudeDelta: 0.07)
        //中心座標と表示範囲をマップに登録する。
        let region = MKCoordinateRegion(center: center, span: span)
        map.setRegion(region, animated:true)   
    }
}</code></pre></div>



<p>上記が実装です。解説していきます。</p>



<p>まずは、MKMapViewをIBOutletで紐付けます。</p>



<p>次に「CLLocationCoordinate2DMake」で緯度経度を設定、「MKCoordinateSpan」で指定範囲を設定します。</p>



<p>そして、「let region = MKCoordinateRegion(center: center, span: span)」の部分で表示領域をセットします。</p>



<p>最後に紐付けたMKMapViewにsetRegionで領域をセットします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>map.setRegion(region, animated:true)   </code></pre></div>



<p>これで、buildを行うと指定の緯度経度で地図を表示できるようになります。今回のサンプルアプリの緯度経度はローマを表しています。</p>



<p>では、今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので、是非参考にしてみてください。</p>The post <a href="https://tomoblog.net/programing/swift/map-point/">【Swift】MapKitで初期表示を緯度経度で指定する方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/map-point/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】iOSアプリで地図を表示させるMapKitの使い方ご紹介。</title>
		<link>https://tomoblog.net/programing/swift/mapkit-add/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mapkit-add</link>
					<comments>https://tomoblog.net/programing/swift/mapkit-add/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Thu, 20 Jul 2023 11:50:35 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=7196</guid>

					<description><![CDATA[<p>今回の記事はSwift関連の記事で、iOSアプリで地図を表示させるMapKitの使い方をご紹介する記事です。アプリ開発で地図を表示させるためのMapKitはよく使用されると思います。MapKitをXcodeで使用できる設 [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/mapkit-add/">【Swift】iOSアプリで地図を表示させるMapKitの使い方ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwift関連の記事で、iOSアプリで地図を表示させるMapKitの使い方をご紹介する記事です。アプリ開発で地図を表示させるためのMapKitはよく使用されると思います。MapKitをXcodeで使用できる設定から使い方までできるだけ丁寧に記載いたします。Swift初心者の方でMapKitを使ってみようと考えている方は是非参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">XcodeプロジェクトにMapKitを追加</a></li><li><a href="#toc2" tabindex="0">MapKitで地図を表示させる使い方</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XcodeプロジェクトにMapKitを追加</span></h2>



<p>cocoapodでライブラリのインストールなどは行う必要はありません。まずは、既存のフレームワーク「Map Kit Framework」をXcodeプロジェクトに追加します。（下記図参照）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="900" height="592" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png" alt="" class="wp-image-1485" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31.png 900w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-300x197.png 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.29.31-768x505.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>「＋ボタン」を押すとXcode内に元々入っているフレームワークの一覧が表示されます。ここでMapなどで検索すれば「Map Kit Framework」が出てきますのでaddを押します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="609" height="667" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg" alt="" class="wp-image-1486" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33.jpg 609w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.31.33-274x300.jpg 274w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p>これでMapKitがXcodeプロジェクトに追加されましたのでstoryboardでMapKitを使用していきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg" alt="" class="wp-image-1487" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1024x640.jpg 1024w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-300x188.jpg 300w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-768x480.jpg 768w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05-1200x750.jpg 1200w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.32.05.jpg 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Xcodeの右上の「＋ボタン」を押してMapKitViewをstoryboardに追加します。画面いっぱいに広げてみましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">MapKitで地図を表示させる使い方</span></h2>



<p>MapKitに地図を表示させるだけの場合は、特にソースコードでの実装は不要です。</p>



<p>この地図上で何か操作を行う場合のみソースコードでの実装が必要です。</p>



<p>この状態でアプリをbuildすると下記のように地図を表示できます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="338" height="664" src="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png" alt="" class="wp-image-1490" srcset="https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07.png 338w, https://tomoblog.net/wp-content/uploads/2020/09/スクリーンショット-2020-09-13-21.44.07-153x300.png 153w" sizes="(max-width: 338px) 100vw, 338px" /></figure>



<p></p>



<p>では、今回の記事は以上です。他にもSwift関連の記事を記載しているのでサイト内興味があれば見ていってください。</p>The post <a href="https://tomoblog.net/programing/swift/mapkit-add/">【Swift】iOSアプリで地図を表示させるMapKitの使い方ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/mapkit-add/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>「Error Finding App Store Connect Credentials」エラー解消。</title>
		<link>https://tomoblog.net/programing/swift/error-finding-app-store-connect-credentials/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=error-finding-app-store-connect-credentials</link>
					<comments>https://tomoblog.net/programing/swift/error-finding-app-store-connect-credentials/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Wed, 26 Apr 2023 12:21:41 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=6701</guid>

					<description><![CDATA[<p>今回の記事は「Error Finding App Store Connect Credentials」というエラーの解消方法をご紹介する記事です。メッセージとしては「App Store Connect access fo [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/error-finding-app-store-connect-credentials/">「Error Finding App Store Connect Credentials」エラー解消。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事は「Error Finding App Store Connect Credentials」というエラーの解消方法をご紹介する記事です。メッセージとしては「App Store Connect access for “〇〇 〇〇” is required. Ensure that your Apple ID account usernames and passwords are correct in the Accounts preference pane. Please try again, and if issue persists file a bug report at &#8220;https://feedbackassistant.apple.com.&#8221;」という表示です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">「Error Finding App Store Connect Credentials」とは？</a></li><li><a href="#toc2" tabindex="0">「Error Finding App Store Connect Credentials」の原因</a></li><li><a href="#toc3" tabindex="0">「Error Finding App Store Connect Credentials」エラー解消</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">「Error Finding App Store Connect Credentials」とは？</span></h2>



<p>このエラー自体が何を表しているかというと、AppleStoreConnectへの認証でエラーが起きているということです。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">「Error Finding App Store Connect Credentials」の原因</span></h2>



<p>原因として考えられるものはアプリのTeamに登録されているユーザの認証ができていない、もしくはAppleStore IDの認証が切れていることが原因です。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="544" height="238" src="https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.15.49.png" alt="" class="wp-image-6703" srcset="https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.15.49.png 544w, https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.15.49-300x131.png 300w" sizes="(max-width: 544px) 100vw, 544px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">「Error Finding App Store Connect Credentials」エラー解消</span></h2>



<p>回避策はTeamのセレクトボックスをクリックします。</p>



<p>すると、Add Accountのような表示がされるので、そちらをクリック。</p>



<p>すると下記画面のように認証を求められるので、Apple IDの認証を行えば解消されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="481" height="163" src="https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.18.34.png" alt="" class="wp-image-6704" srcset="https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.18.34.png 481w, https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-26-21.18.34-300x102.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></figure>



<p>今回の記事は以上です。他にもswift関連の記事を記載しているので、是非サイト内参考にしてみてください。</p>The post <a href="https://tomoblog.net/programing/swift/error-finding-app-store-connect-credentials/">「Error Finding App Store Connect Credentials」エラー解消。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/error-finding-app-store-connect-credentials/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【swift】レビュー機能を実装する方法。</title>
		<link>https://tomoblog.net/programing/swift/review/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review</link>
					<comments>https://tomoblog.net/programing/swift/review/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Fri, 21 Apr 2023 04:39:57 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://tomoblog.net/?p=6683</guid>

					<description><![CDATA[<p>今回の記事はswiftでiOSアプリ制作を行う場合にAppleStoreでのお客様からのレビューを受ける画面を表示し、星を入力してもらう、レビュー機能を実装する方法をご紹介します。できるだけ分かりやすいように記載するので [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/review/">【swift】レビュー機能を実装する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はswiftでiOSアプリ制作を行う場合にAppleStoreでのお客様からのレビューを受ける画面を表示し、星を入力してもらう、レビュー機能を実装する方法をご紹介します。できるだけ分かりやすいように記載するのでswift初学者の方もぜひ参考にしてみてください。</p>



<h2 class="wp-block-heading">swiftでレビュー機能を実装する方法</h2>



<p>レビュー機能を実装する方法は非常に簡単です。まずは、レビュー機能を簡単に実装できる、「StoreKit」をimportします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import StoreKit</code></pre></div>



<p>このStoreKitはAppleStore関連の処理を簡単に実装できるライブラリです。</p>



<p>このライブラリを使うと数行で実装可能です。</p>



<p>下記がレビュー機能の処理となります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
}</code></pre></div>



<p>これをボタンイベントに紐づけるだけで、レビュー画面が表示され、自身の配信しているアプリのレビューを行うことができます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="265" height="245" src="https://tomoblog.net/wp-content/uploads/2023/04/スクリーンショット-2023-04-21-13.31.17.png" alt="" class="wp-image-6684"/></figure>



<p>では今回の記事は以上です。</p>



<p>他にもswift関連の記事を多数記載しているので、是非参考にしてみてください。</p>The post <a href="https://tomoblog.net/programing/swift/review/">【swift】レビュー機能を実装する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】Admob広告をiOSアプリに表示する方法。</title>
		<link>https://tomoblog.net/programing/swift/admob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=admob</link>
					<comments>https://tomoblog.net/programing/swift/admob/#comments</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Tue, 18 Apr 2023 06:03:36 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://sunnyday-travel-aso-6487.ssl-lolipop.jp/?p=3392</guid>

					<description><![CDATA[<p>今回の記事はSwiftのiOSアプリ開発で収益を考える際に必要なAdmob広告をアプリ内に表示する方法に関してご紹介する記事です。初心者にも分かりやすいように画像付きで、Admobの登録から広告を表示するswiftコード [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/admob/">【Swift】Admob広告をiOSアプリに表示する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwiftのiOSアプリ開発で収益を考える際に必要なAdmob広告をアプリ内に表示する方法に関してご紹介する記事です。初心者にも分かりやすいように画像付きで、Admobの登録から広告を表示するswiftコードの解説を記載しております。是非参考にしてみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Admob広告とは？</a></li><li><a href="#toc2" tabindex="0">Admobに登録</a></li><li><a href="#toc3" tabindex="0">アプリにapp-ads.txtをセットアップ</a></li><li><a href="#toc4" tabindex="0">広告ユニットの作成</a></li><li><a href="#toc5" tabindex="0">アプリ内に広告表示手順</a><ol><li><a href="#toc6" tabindex="0">podでライブラリインストール</a></li><li><a href="#toc7" tabindex="0">Swiftコード挿入</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Admob広告とは？</span></h2>



<p>まず、Admob広告とは何かというとGoogleのiOS版の広告と思っていただければ良いと思います。Web版では非常に有名な「Google Adsense」があるようにiOS版では「Google Admob」があるといった具合です。</p>



<p>では早速登録を行っていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">Admobに登録</span></h2>



<p>登録自体は非常に簡単で、審査等もありません。また、年会費当一切掛からず無料です。では登録に進みます。下記公式の登録ページがあるのでそちらから登録しましょう。</p>



<p><a rel="noopener" target="_blank" href="https://admob.google.com/intl/ja_ALL/home/"><strong>Admobのサイト</strong></a></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="406" height="318" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.39.33.png" alt="" class="wp-image-3393" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.39.33.png 406w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.39.33-300x235.png 300w" sizes="(max-width: 406px) 100vw, 406px" /></figure>



<p>必要情報を入力します。初期設定のままで良いと思います。</p>



<p>この次に同意するボタンが出てくるので同意のみ行えば電話番号からPINコードが送られてくるのでそれを入力すれば完了です。</p>



<p>では次に広告のプロジェクトを作成していきましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="589" height="443" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.05.png" alt="" class="wp-image-3395" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.05.png 589w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.05-300x226.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>



<p>スタートをクリック。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="568" height="233" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.12.png" alt="" class="wp-image-3396" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.12.png 568w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.12-300x123.png 300w" sizes="(max-width: 568px) 100vw, 568px" /></figure>



<p>いいえをクリック。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="461" height="370" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.24.png" alt="" class="wp-image-3397" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.24.png 461w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.43.24-300x241.png 300w" sizes="(max-width: 461px) 100vw, 461px" /></figure>



<p>アプリ名とプラットフォームを選択し、ユーザー指標を有効にする。アプリを検索する際ですが、アップルストアに配信した後5日程度の間でGoogleAdmob側でも検索に引っかかるようになるので配信したてでは検索できない可能性がありますのでご注意を。</p>



<p>以上でアプリの登録が完了です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="925" height="402" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.58.20.png" alt="" class="wp-image-3398" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.58.20.png 925w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.58.20-300x130.png 300w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-8.58.20-768x334.png 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p>次のステップとして「アプリにapp-ads.txtをセットアップ」と「広告ユニットの設定が必要になります。」実行していきましょう。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">アプリにapp-ads.txtをセットアップ</span></h2>



<p>Admobのサイトからアプリを選択し、「全てのアプリを表示」をクリックします。</p>



<p>これで下記のような画面が作成されるので「app-ads.txt」のファイル作成した後に、このファイルに下記をコピーします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="736" height="412" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46.png" alt="" class="wp-image-3399" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46.png 736w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46-300x168.png 300w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46-120x68.png 120w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46-160x90.png 160w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.26.46-320x180.png 320w" sizes="(max-width: 736px) 100vw, 736px" /></figure>



<p>ではこのファイルを設置していきます。</p>



<p>どのサーバにおいてもいいのですが基本的に皆さんWordplessなどを設置している自身のサイトに配置する方がいいと思います。こちらはアプリのプライバシーポリシー記入などが必要な為保有していると思います。</p>



<p>私はロリポップサーバーを保有しているので下記サイトの手順で行いました。Xserverなどでも基本的にドメインの一個したのURLにファイル転送ツールなどを使って配置してください。</p>



<p>「https://[ドメイン]/app-ads.txt」をブラウザで開いて入力した文字が表示されればOKです。</p>



<p>後はAdmobのクローラーが見つけてくれますのでしばらくお待ちください。</p>



<p>また、この作業終了後「App Store Connect」よりマーケティングURLを登録します。手順は簡単で、ログイン後→アプリのアップデートを行う際にマーケティングURLに上記の「app-ads.txt」を配置したドメインのディレクトリに上記を配置します。</p>



<p>アプリのアップデートはアプリ名の上の＋マークをクリックして新しいバージョンのアプリを作成しておく必要があります。ただ、広告表示させる為にアップデートする必要があるので同じタイミングで登録し切ってしまいましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="312" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.47.16-1024x312.png" alt="" class="wp-image-3400" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.47.16-1024x312.png 1024w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.47.16-300x91.png 300w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.47.16-768x234.png 768w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.47.16.png 1047w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「https://[自身のドメイン]/」をマーケティングURLに配置。</p>



<p></p>



<p>これで準備完了です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="704" height="320" src="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.50.19.png" alt="" class="wp-image-3401" srcset="https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.50.19.png 704w, https://tomoblog.net/wp-content/uploads/2021/04/スクリーンショット-2021-04-03-10.50.19-300x136.png 300w" sizes="(max-width: 704px) 100vw, 704px" /></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">広告ユニットの作成</span></h2>



<p>広告ユニットの作成を行います。広告ユニットページから広告ユニット作成をクリックし、広告の種類と広告ユニット名を書きます。広告の種類に関しては<a rel="noopener" target="_blank" href="https://support.google.com/admob/answer/6128738?hl=ja">公式の説明</a>を読めば問題なく理解できると思います。リンクから確認してみてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="892" height="615" src="https://tomoblog.net/wp-content/uploads/2021/05/スクリーンショット-2021-05-03-11.00.48.png" alt="" class="wp-image-3615" srcset="https://tomoblog.net/wp-content/uploads/2021/05/スクリーンショット-2021-05-03-11.00.48.png 892w, https://tomoblog.net/wp-content/uploads/2021/05/スクリーンショット-2021-05-03-11.00.48-300x207.png 300w, https://tomoblog.net/wp-content/uploads/2021/05/スクリーンショット-2021-05-03-11.00.48-768x530.png 768w" sizes="(max-width: 892px) 100vw, 892px" /></figure>



<p>上が<strong>アプリID</strong>でしたが<strong>Unit ID</strong>です。</p>



<p>この広告ユニットを最後にアプリに組み込んでみましょう。</p>



<h2 class="wp-block-heading"><span id="toc5">アプリ内に広告表示手順</span></h2>



<h3 class="wp-block-heading"><span id="toc6">podでライブラリインストール</span></h3>



<p>ポッドのバージョンが古いとインストールできなかったので私はまず更新してから「pod install」を行いました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo gem install cocoapods

pod init

[ファイル内にライブラリ追加]

pod install --repo-update</code></pre></div>



<p>ファイル内に追加する内容は下記です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-file="Podfile"><code>target &#39;[アプリ名]&#39; do
  # Comment the next line if you don&#39;t want to use dynamic frameworks
  use_frameworks!
  pod &#39;Google-Mobile-Ads-SDK&#39;
  
  # Pods for [アプリ名]
  </code></pre></div>



<p></p>



<p>後はXcodeでの操作です。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc7">Swiftコード挿入</span></h3>



<p>まずは「info.plist」を修正します。</p>



<p>「info.plist」を右クリックで「open as」→「source code」で編集していきます。下記を追加してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>&lt;key&gt;GADApplicationIdentifier&lt;/key&gt;
&lt;string&gt;アプリID&lt;/string&gt;
&lt;key&gt;SKAdNetworkItems&lt;/key&gt;
  &lt;array&gt;
    &lt;dict&gt;
      &lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
      &lt;string&gt;cstr6suwn9.skadnetwork&lt;/string&gt;
    &lt;/dict&gt;
  &lt;/array&gt;
&lt;key&gt;GADIsAdManagerApp&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;SKAdNetworkItems&lt;/key&gt;
	&lt;array&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;cstr6suwn9.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;4fzdc2evr5.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;2fnua5tdw4.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;ydx93a7ass.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;5a6flpkh64.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;p78axxw29g.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;v72qych5uu.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;c6k4g5qg8m.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;s39g8k73mm.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;3qy4746246.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;3sh42y64q3.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;f38h382jlk.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;hs6bdukanm.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;prcb7njmu6.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;wzmmz9fp6w.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;yclnxrl5pm.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;4468km3ulz.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;t38b2kh725.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;7ug5zh24hu.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;9rd848q2bz.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;n6fk4nfna4.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;kbd757ywx3.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;9t245vhmpl.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;2u9pt9hc89.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;8s468mfl3y.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;av6w8kgt66.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;klf5c3l5u5.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;ppxm28t8ap.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;424m5254lk.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;uw77j35x4d.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;e5fvkxwrpn.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;zq492l623r.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
		&lt;dict&gt;
			&lt;key&gt;SKAdNetworkIdentifier&lt;/key&gt;
			&lt;string&gt;3qcr597p9d.skadnetwork&lt;/string&gt;
		&lt;/dict&gt;
	&lt;/array&gt;</code></pre></div>



<p>追加する場所はkeyの一番下でいいと思います。</p>



<p>公式の説明の場合は下記の部分は記載されていないのですがこれがないとアプリがクラッシュしました。</p>



<p>アプリIDはAdmobのサイトから「アプリ」→「アプリ設定」で確認できますが初回はテスト用のコード（ca-app-pub-3940256099942544~1458002511）で行った方がいいようです。誤って自身のものでやってしまうとアカウントが判される可能性もあるようです。これでXcodeでの設定は終了です。</p>



<p>最後にSwiftコードで広告を表示させる方法をご紹介します。</p>



<p>まずは普段あまり触らない「Appdelegate.swift」のファイルにに下記を記載します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-file="Appdelegate.swift" data-lang="Swift"><code>import UIKit
import GoogleMobileAds  //追加部分

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {  //追加部分

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -&gt; Bool {

        GADMobileAds.sharedInstance().start(completionHandler: nil)  //追加部分

        return true
    }</code></pre></div>



<p>今回はインタースティシャルの広告表示を行ってみます。まずはページ遷移などがある前のStoryboardに紐付いているSwiftファイルを開きます。（インタースティシャルはページ遷移などがないと使用できません。）</p>



<p>ちなみに広告unitと下記コードは合わせる必要があります。仮に広告Unitでバナーを表示していた場合はバナー用のコードに変える必要があります。</p>



<p>また、混乱しやすいので整理しておくとアプリIDとUnit IDは別物です。</p>



<p>Admobのサイトで広告の種類を選んだときに二つのIDが与えられます。詳しくは上記Unit ID作成をご覧ください。</p>



<p></p>



<p>では、インターシャル広告表示のコードに移ります。下記を追加します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>
import GoogleMobileAds
import UIKit

class ViewController {

  private var interstitial: GADInterstitialAd?

  func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID:&quot;[作成した広告unit IDの番号]&quot;,
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print(&quot;Failed to load interstitial ad with error: \(error.localizedDescription)&quot;)
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}</code></pre></div>



<p>後はボタンなどの遷移する際のアクションの前に下記を追加することで広告表示ができます。今回のコードはAdmobのテスト用コードなので広告タイトルの部分にテストモードと記載されます。それが確認できれば広告表示は完了です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>interstitial?.present(fromRootViewController: self)</code></pre></div>



<p>インタースティシャル広告はページを消した際に処理を追加するコードはデリゲートから各種設定できます。詳しくはこちらの記事をご参照ください。</p>



<p>「<a target="_blank" href="https://tomoblog.net/programing/swift/admob-delegate/">【Swift】Admob広告の表示を消した際に処理を追加する方法。〜 delegate使用 〜</a>」</p>



<p></p>



<p>今回の記事は以上です。他にも<a target="_blank" href="https://tomoblog.net/programing/apple-store-upload-2020/">iOSアプリ配信方法</a>やSwift関連の開発についての記事をAIからARまで多数記載しています。気になる方は是非参考にしてください。</p>The post <a href="https://tomoblog.net/programing/swift/admob/">【Swift】Admob広告をiOSアプリに表示する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/admob/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>【swift】ButtonやLabelの表示文字をソースから変更する方法。</title>
		<link>https://tomoblog.net/programing/swift/button-label-text-change/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=button-label-text-change</link>
					<comments>https://tomoblog.net/programing/swift/button-label-text-change/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Mon, 10 Apr 2023 05:00:04 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://sunnyday-travel-aso-6487.ssl-lolipop.jp/?p=413</guid>

					<description><![CDATA[<p>今回の記事ではアプリ内のButtonやLabelの表示文字を変更されている文字をソースから変更する方法をご紹介する記事です。初心者にもわかりやすいようにXcodeの操作画像とサンプルソース付きで説明していきますので、是非 [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/button-label-text-change/">【swift】ButtonやLabelの表示文字をソースから変更する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事ではアプリ内のButtonやLabelの表示文字を変更されている文字をソースから変更する方法をご紹介する記事です。初心者にもわかりやすいようにXcodeの操作画像とサンプルソース付きで説明していきますので、是非参考にしてみてください。</p>



<p></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">buttonの表示文字変更</a></li><li><a href="#toc2" tabindex="0">labelの表示文字変更</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">buttonの表示文字変更</span></h2>



<p>まずはXcodeのstoryboardに、ボタンを設置します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="844" height="380" src="https://tomoblog.net/wp-content/uploads/2020/05/スクリーンショット-2020-05-02-16.47.18.png" alt="" class="wp-image-415" srcset="https://tomoblog.net/wp-content/uploads/2020/05/スクリーンショット-2020-05-02-16.47.18.png 844w, https://tomoblog.net/wp-content/uploads/2020/05/スクリーンショット-2020-05-02-16.47.18-300x135.png 300w, https://tomoblog.net/wp-content/uploads/2020/05/スクリーンショット-2020-05-02-16.47.18-768x346.png 768w" sizes="(max-width: 844px) 100vw, 844px" /></figure>



<p>場所はどこでもOKです。設置後にボタンを「ctrl」+「ドラッグ」でviewcontroller.swiftのファイル上にドラッグし、IBoutlet接続を行います。</p>



<p>ボタンの接続方法がよくわかっていない方はこちらの記事も参考になると思うので、みてください。</p>



<p>「<a target="_blank" href="https://tomoblog.net/programing/swift/xcode-button-click-label/">【swift】Xcodeでswiftを用いてボタンクリックでLabelに文字出力させる方法</a>」</p>



<p></p>



<p>次に「Viewcontroller.swift」に下記のSwiftコードを記載します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button1: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        button1.setTitle(&quot;クリック&quot;, for: .normal) 
    }

}</code></pre></div>



<p>この「button1.setTitle(&#8220;クリック&#8221;, for: .normal)」部分が、ボタンの表示したいタイトルをセットするという指示です。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">labelの表示文字変更</span></h2>



<p>ラベルを設置し、viewcontroller.swiftと紐づけるまでは上記の流れと同じです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-lang="Swift"><code>import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button1: UIButton!
    
    @IBOutlet weak var label1: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        label1.text=&quot;テスト&quot;
    }
}</code></pre></div>



<p>上記のように、label1.text=&#8221;テスト&#8221;でラベル内の表示文字を変更することができます。こちらを応用して、ボタンクリックに文字を変更する指示なども設定することができます。</p>



<p>基礎内容ですが、非常に重要な処理となっています。</p>



<p></p>



<p>では今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので是非そちらも参考にしてみてください。</p>The post <a href="https://tomoblog.net/programing/swift/button-label-text-change/">【swift】ButtonやLabelの表示文字をソースから変更する方法。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/button-label-text-change/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Swift】TableViewCell上に配置したUIButtonからページ移動を行う方法ご紹介。</title>
		<link>https://tomoblog.net/programing/swift/tableviewcell-uibutton-move-page/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tableviewcell-uibutton-move-page</link>
					<comments>https://tomoblog.net/programing/swift/tableviewcell-uibutton-move-page/#respond</comments>
		
		<dc:creator><![CDATA[tomo]]></dc:creator>
		<pubDate>Sun, 27 Nov 2022 10:24:40 +0000</pubDate>
				<category><![CDATA[Swift]]></category>
		<guid isPermaLink="false">https://sunnyday-travel-aso-6487.ssl-lolipop.jp/?p=6553</guid>

					<description><![CDATA[<p>今回の記事はSwiftを使った開発で、TableViewCell上に配置したUIButtonからページ移動を行う方法をご紹介します。TableViewCell上に配置したUIButtonからのページ移動は通常の流れではで [&#8230;]</p>
The post <a href="https://tomoblog.net/programing/swift/tableviewcell-uibutton-move-page/">【Swift】TableViewCell上に配置したUIButtonからページ移動を行う方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></description>
										<content:encoded><![CDATA[<p>今回の記事はSwiftを使った開発で、TableViewCell上に配置したUIButtonからページ移動を行う方法をご紹介します。TableViewCell上に配置したUIButtonからのページ移動は通常の流れではできないのでprotocolというものを使用します。分かりやすく記載しているので是非参考にしてみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">TableViewCell用のCustomTableViewCellを用意</a></li><li><a href="#toc2" tabindex="0">CustomTableViewCellにUIButtonを接続</a></li><li><a href="#toc3" tabindex="0">CustomTableViewCellコード</a></li><li><a href="#toc4" tabindex="0">TableViewを使用しているクラス内のコード</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">TableViewCell用のCustomTableViewCellを用意</span></h2>



<p>まずはTableViewCell用のカスタムクラスを作成します。</p>



<p>ファイルの追加から「CocoaTouchClass」を追加します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="508" height="262" src="https://tomoblog.net/wp-content/uploads/2022/11/スクリーンショット-2022-11-27-18.53.40.png" alt="" class="wp-image-6550" srcset="https://tomoblog.net/wp-content/uploads/2022/11/スクリーンショット-2022-11-27-18.53.40.png 508w, https://tomoblog.net/wp-content/uploads/2022/11/スクリーンショット-2022-11-27-18.53.40-300x155.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-file="CustomTableViewCell.swift" data-lang="Swift"><code>import UIKit

class CustomTableViewCell : UITableViewCell {
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // Configure the view for the selected state
    }
}

</code></pre></div>



<h2 class="wp-block-heading"><span id="toc2">CustomTableViewCellにUIButtonを接続</span></h2>



<p>続いてUIButtonをAutlet接続します。</p>



<p>Storyboardから通常のように線を引っ張って接続するだけでいいです。CustomTableViewCell.swiftに接続してください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-file="CustomTableViewCell.swift" data-lang="Swift"><code>//
//  CustomTableViewCell.swift
//  sekaiisan
//
//  Created by nishibetomoharu on 2022/11/25.
//

import UIKit

protocol SampleProtocol {
    func movePage()
}

class CustomTableViewCell : UITableViewCell {

    @IBOutlet weak var sampleButton: UIButton!
    
    var delegate : CatchProtocol?
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        sampleButton.addTarget(self,action: #selector(movePage_),
                                   for: .touchUpInside)
        // Configure the view for the selected state
    }
    
    // Infobutton
    @objc func movePage_(sender:UIButton){
        delegate?.movePage()
    }
}</code></pre></div>



<h2 class="wp-block-heading"><span id="toc3">CustomTableViewCellコード</span></h2>



<p>CustomeTavleViewCell.swiftを修正します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-file="CustomTableViewCell.swift" data-lang="Swift"><code>import UIKit

class CustomTableViewCell : UITableViewCell {

    @IBOutlet weak var sampleButton: UIButton!
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        sampleButton.addTarget(self,action: #selector(printSenderTag),
                                   for: .touchUpInside)
        // Configure the view for the selected state
    }
    
    // Infobutton
    @objc func printSenderTag(sender:UIButton){
        print(sender.tag)
    }
}</code></pre></div>



<p>上記のコードの解説はTableViewを使用しているクラス内のコードをみてからの方が分かりやすいので先にそちらを説明します。</p>



<h2 class="wp-block-heading"><span id="toc4">TableViewを使用しているクラス内のコード</span></h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-swift" data-file="SampleController.swift" data-lang="Swift"><code>
// （省略）

// Protocol（SampleProtocol）を追加
class SampleController: UIViewController,UITableViewDelegate,UITableViewDataSource, SampleProtocol  {

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
        // Cell
        let cell = tableView.dequeueReusableCell(withIdentifier: &quot;セルに設定した名前&quot;, for: indexPath as IndexPath) as! CustomTableViewCell

        // CustomTableViewCellの接続しているUIButtonのタグにdelegateをセット
        cell.delegate = self

        return cell
    }

    // ページ移動用関数
    func movePage() {
        performSegue(withIdentifier: &quot;移動したいページ用のSegue&quot;, sender: nil)
    }
}

// （省略）</code></pre></div>



<p>コメントでも記載していますがCellを返すTableViewのDelegateの中で、プロトコルに準拠した関数を定義し、そちらでページ移動をしています。</p>



<p>Protocolはクラスに追加しておきましょう。</p>



<p>では、今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので是非サイト内興味があれば見て行ってください。</p>The post <a href="https://tomoblog.net/programing/swift/tableviewcell-uibutton-move-page/">【Swift】TableViewCell上に配置したUIButtonからページ移動を行う方法ご紹介。</a> first appeared on <a href="https://tomoblog.net">ともぶろぐ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://tomoblog.net/programing/swift/tableviewcell-uibutton-move-page/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
