Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UINavigationBarの隅々までタップしたい
Search
Yosuke Ishikawa
November 13, 2013
Technology
2
11k
UINavigationBarの隅々までタップしたい
2013/11/13 potatotips
https://github.com/potatotips/potatotips/wiki/potatotips-1
Yosuke Ishikawa
November 13, 2013
Tweet
Share
More Decks by Yosuke Ishikawa
See All by Yosuke Ishikawa
Achieving Testability in Presentation Layer
ishkawa
4
3.5k
Introducing Wire: Dependency Injection by Code Generator
ishkawa
12
1.2k
Declarative UICollectionView
ishkawa
28
7.7k
Nuxt.jsが掲げる"Universal Vue.js Applications"とは何者か
ishkawa
10
2.6k
Static Dependency Injection by Code Generation
ishkawa
15
6.1k
実践クライアントサイドSwift
ishkawa
24
4k
JSON-RPC on APIKit
ishkawa
5
51k
RxSwiftは開発をどう変えたか?
ishkawa
12
3.7k
Swift + JSON-RPC
ishkawa
0
48k
Other Decks in Technology
See All in Technology
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
190
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.3k
Taming you application's environments
salaboy
0
180
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
950
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
RailsConf 2023
tenderlove
29
900
Why Our Code Smells
bkeepers
PRO
334
57k
We Have a Design System, Now What?
morganepeng
50
7.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
The Invisible Side of Design
smashingmag
298
50k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Fireside Chat
paigeccino
34
3k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Speed Design
sergeychernyshev
24
610
Transcript
UINavigationBarͷ ۱ʑ·Ͱλοϓ͍ͨ͠ @_ishkawa
None
GHFeed
ຊ
Custom View λοϓ͍ͨ͠ͱ͜Ζ
͔ͯ͠͠ɿ ✗ Tips ✓ όουϊϋ
ΞΠσΟΞ ✓ UINavigationBarͷhitTest:withEvent:Λվ
hitTest:withEvent: leftBarButtonItem.customView
hitTest:withEvent: navigationBar
͜ͷͱ͖
for (UIView *subview in barButtonItem.customView.subviews) { UIView *customView = barButtonItem.customView;
CGRect convertedRect = [self convertRect:subview.frame fromView:customView]; ! if (CGRectContainsPoint(convertedRect, point)) { CGPoint convertedPoint = [self convertPoint:point toView:subview]; return [subview hitTest:convertedPoint withEvent:event]; } } ʢcustomView.subviews͔Βhit͢ΔͷΛ୳͢ʣ
ͬͯΔͱ
ίίʹϘλϯ͕͋ͬͯԠͰ͖Δʂ
ҰԠϥΠϒϥϦʹ͠·ͨ͠
ISInteractiveEdgesNavigationBar https://github.com/ishkawa/ISInteractiveEdgesNavigationBar
͍ํ Class navigationBarClass = [ISInteractiveEdgesNavigationBar class]; Class toolbarClass = [UIToolbar
class]; ! UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:navigationBarClass toolbarClass:toolbarClass];
pod ‘ISInteractiveEdgesNavigationBar‘, ‘~> 0.0.2’