ラベル xcode の投稿を表示しています。 すべての投稿を表示
ラベル xcode の投稿を表示しています。 すべての投稿を表示

2015年3月12日木曜日

角丸ボタン in Xcode 6.1.1 その2

疑問:

角丸ボタンってそもそもそういうクラスでいいんじゃないの?と思ったりなんかして、UIButtonからUIRoundButtonを作ってみたが、そしてそれはinitに書くことで同じことは出来たのだが、プレビューできないじゃん。

自分で作ったクラスをプレビューさせるにはどうすればいいのでしょう?


UIButtonでUser Defined Tuntime Attributesを書いてもプレビューはできない(ま、Runtimeっていうぐらいだからね)し、そもそも2つ以上の角丸ボタンを使うときに、毎回それ手で設定するのは馬鹿だよね。。何かまともな方法があるんだろうか?


結論:

自分はOopsオンチなのでクラス化の王道は知らないが、イメージ通りに書くのが基本的なスタイル。自分が物事をどう捉え、プログラム的なイメージに変換しているか、ということ。

だから「角丸ボタン」は「ボタンの角を丸くする」のではなく、「初めから角が丸いボタン」なので、プレビュー出来る出来ないとか、クラスであるべきないべきとかは置いておいて(問題先送り)、UIRoundButtonにしてしまって問題ない。

先送りした問題が解決すれば自動的に何かが変わる(変える)だろう。

2015年3月9日月曜日

角丸ボタン in Xcode 6.1.1



以前の(Xcode4? もう自分本位なことしかやってないのでXcodeのバージョンはどうでもいい感じで過ごしてきた)バージョンではround rect button とかいう角丸のボタンがオブジェクトライブラリの中にあったのだが、Xcode6には入っていない。

以下、stackoverflowのポストより。

1. XcodeのIdentity InspectorのUser Defined Runtime Attributesに追加する


2. コードで書く
roundButtonという名前で viewDidLoadで初期化的に実行。

ViewController.h:
@property (weak, nonatomic) IBOutlet UIButton *roundButton;

ViewController.m:
- (void)viewDidLoad {
    [super viewDidLoad];

    CALayer *btnLayer = [roundedButton layer];
    [btnLayer setMasksToBounds:YES];
    [btnLayer setCornerRadius:10];

}


コードはstackoverflowのポストからの丸パクリで、半径を10に変えただけ。リンクだけだと元原稿が消えることがままあるので。

2012年8月1日水曜日

VisualStudioでiOS開発


なんて出来ればと思う今日この頃。Xcodeにも参照元一覧が欲しい。なぜかというと、全く使われていないファイル丸々2つを一生懸命読んでいたから。とはいえ、参照元一覧だってそんな先進的機能といえるほど目新しいわけではない(作るのは大変そうだが)。それよりもっと直感的で概念的に構成をぱっと明示してくれるほうがいい。ファイルのツリーがプロジェクト構成を示すデフォルトのインフォグラフだというのは、もうそろそろクラシックなのではないだろうか。

でもこうした現行の開発環境の進歩が留まっているということは、逆によりよい開発環境を作るチャンスがデベロッパに残されているとも言える。

例えば今、GitHubにはSocial Codingという副題(問いって良いのかどうか分からない)が付いている。だからというわけでもないのだが、Social IDEがこの後出てくる(もしくは自分が作る)はずだ。ただそういう頭でさえ、参照元一覧が古いと思っていたわけではない。いや物理的に同じ頭の中ではそう思っていたのだが、考えが繋がってた訳ではない。いろいろ整理することが多過ぎて困る。

この頭がふとLLVMのライセンスが何か疑問を呈してきたので確認してみると、BSDライクな"University of Illinois/NCSA Open Source Licenseというものだった(BSDライクと言われるのはBSDライセンスが有名だから)。

で、そうこうしていたら銘言を見つけたのでmemo.

 WikipediaのClangの項より:
『長年の GCC の開発者の一人は「カバにダンスを踊らせるのはあまり楽しいことではない」と述べている』

このカバのくだり、原文はこう(最後の行):
"Trying to make the hippo dance is not really a lot of fun."

自分は:
「カバを踊らせてみるのは、ものすごく楽しいって程じゃない。」 つまり、楽しいは楽しいけどものすごくってわけじゃない、ってニュアンスじゃないかと思ったのだが、それは直訳しすぎだろうか。

2012年7月31日火曜日

Xcodeのビルド前の警告は無視

時々それを忘れて真剣に悩んで時間を無駄にすることが多々あるのでmemo。

Xcodeのコーディング時点でのエラーアシストは役立たずどころか、足手まといに過ぎない。ビルドするまで完全に無視しよう。

2012年7月17日火曜日

Xcodeでgithubへのpushが出来ない

githubでPGMidiをForkした後、HTTPのURIをコピーして、リポジトリに追加し、Cloneするとローカルに持って来れる。これ自体が怪しい気もするのだが、一応プロジェクトを開いてビルドして実行して動くのだから、いいんじゃないだろうか。

しかし、これをpushしようとすると、意味不明なcommit失敗で頓挫する。

昔もgitを知らないまま闇雲にXcodeで使いだして(サポートされたのでそのまま使っていただけなのだが)、暫く開発から遠ざかっていたらすっかり忘却の彼方へ。でもそのときは別にgithubを使ってはおらず、今回、他でもgithubを使うぅ?みたいなことで、bitbucketやらgithubやらに体当たりしてみているのだが、ああ!! そうだ、そういえばbitbucketはうまくいってたじゃないか! なんでGitHubになったかというと、その他でも使うぅ?みたいなことがあったからで、この際GitHubからBitBucketに引っ越そう!

というか、それもあったのだが、PGMidiがGitHubに上がっていたのでGitHubでForkしたという流れが正解といえば正解か(つまり別件は最終的には関係ない)。で、それをBitBucketにprivateであげていいものか?(ライセンスはMIT?:これもGitHubの前にGitoriousでPGMidiの前身と思われるmidimonitorがホストされていたのだが、そこのライセンス欄にはMITとあった。GitHubにはライセンス欄が見当たらないが、目が悪い?)。

とりあえず、今今は単に練習用に土台として使わせてもらうだけなので、自分の分はCC0(パブリックドメイン)で良しとすれば、大丈夫ではないかと思う。どの道オリジナルのPGMidiにPull Reqするわけじゃないのだし。

ということで、早速、BitBucketに引っ越そう。っていってもう一度やろうとするとできなくなってたりするんだよなあ。

まあとにかく。XcodeでGitHubはお手上げです。


Xcode 4.3.3でC99のwarning?が取れない

なんだろうこれ。PGMidiをCloneさせてもらったのはいいんだけど。warningっぽい黄色のエラーだからビルドはできるものの、warningが許せない性格。困ったもんだ。一応ビルド設定でC99とある”C Language Dialect"は"C99"になっている。GNU99もやってみたが変わらず。


お手上げです。

2012/7/19 追記
ADCにXcode4.4DP6があったので、それを落として試してみたが、warningが8個から7個に減るという非常に中途半端な結果に終わった。

2012年7月5日木曜日

xcodeのセグエはsegue

Mac辞書で”セグエ”を検索しても何も出てこないが、当てずっぽうに"seg"と入れると"sugue/séiɡwei/"が続く的な意味のよう。これか。イタリア語。

と、ここで英語の原本を見れば良いということにようやく気づく。pdfが見つからず、web上のドキュメント上で探すのがちょっと面倒だったが見つかった。segue。

2011年12月30日金曜日

Xcode 4.2 でstoryboardがXML表示から復帰しない

散々悩んだ挙げ句、再起動してみると、再起動時にエラーになり、continueを選んで(エラーを無視して)起動したら治った。というか、そもそもstoryboardをXMLで表示するモードがあるのか、なぜ突然XMLで表示されたのかも分からず。

(追記2012/6/22) storyboardのファイルの右メニュー→"Open As"→"Source Code"でXML表示になる。"Interface Builder - iOS"でレイアウト表示に。

Xcode 4.2 から tabbed applicationのtab barのitemを増やすことが出来なくなったみたいだが、マニュアルにもライブラリからドラッグしてくるとあるので、それ自体バグなのかもしれない。4.1に戻せるか、やってみよう。