2010-06-03 10 views
5

Po pierwsze, jest wreszcie wsparcie dla iPhone'a dla NinePatch, WIELKIE podziękowania dla zespołu Tortuga 22 za to. Niestety dla mnie nie udało mi się dodać ich biblioteki do mojego projektu.W jaki sposób mam zamiar włączyć bibliotekę Tortuga 22 NinePatch do mojego projektu XCode?

Jeżeli po prostu przeciągnąć i upuścić pliki źródłowego w moim projekcie mam mnóstwo "Nie ma takiego pliku lub katalogu" -errors. Jeśli odwołuję się do pliku libNinePatch.a jako zewnętrznego frameworku, otrzymuję ten sam wynik.

Jaki jest właściwy sposób na wykonanie tego? Z ich strony nie ma instrukcji, więc sądzę, że musi to być dość prosty sposób.

Z góry dziękuję.
// Abeansits

+1

Mam ten sam problem, jeśli przeciągam i upuszczam pliki, nie mogę skompilować wszystkiego. – DixieFlatline

Odpowiedz

1

Po prostu lubię mówić wszystkim, którzy wciąż zmagają się z tym, że wysłałem podspec do repozytorium CocoaPod.

Oznacza to, że jeśli projekt wykorzystuje CocoaPods (a dlaczego nie?), Można tylko dodać:

pod 'Tortuga22-NinePatch'

do swojej Podfile i będziesz miał wsparcie NinePatch. (zauważ, że nadal nie jest zgodny z ARC, żądania ściągania są mile widziane!)

+1

Ponieważ jest to naprawdę stare pytanie, a Cocoapods to nowy sposób dodawania bibliotek, pójdę dalej i oznaczę to jest odpowiedź na pytanie. – ABeanSits

0

Powinieneś być w stanie dodać pliki do projektu. Odpowiedzi na this SO question mogą pomóc.

Pamiętaj też, że UIImage zapewnia rozciągliwe obrazy. Aby uzyskać szczegółowe informacje, patrz -stretchableImageWithLeftCapWidth:topCapHeight:. To ci nie pomoże, jeśli będziesz potrzebował czytać obrazy w dziewięciu patchach, być może do dzielenia się zasobami z aplikacją na Androida, ale często to wszystko jest naprawdę potrzebne.

+0

Otrzymuję błędy w liniach takich jak ten "NPParameterAssertNotNilIsKindOfClass (loggingTags, NSArray)". Chciałbym również udostępnić resoruces z Androidem, myślałem, że jest to możliwe w tej bibliotece? – DixieFlatline

0

Czy zawierasz # główne pliki nagłówkowe w dowolnej klasie, której potrzebujesz, lub w pliku prefix.pch?

0

Jeśli pobierzesz ich source package z GitHub, zobaczysz, że dodali przykładowy projekt, NinePatchDemo. Kontrola tego powinna dostarczyć Ci wszystkich potrzebnych informacji.

Zobaczysz, że właśnie porzucili projekt Xcode NinePatch w projekcie NinePatchDemo, w sekcji "Inne źródła". Możesz przeciągać i upuszczać projekt NinePatch na swoje własne w ten sam sposób. Możesz sprawdzić ustawienia kompilacji i docelowe, aby upewnić się, że uwzględniłeś wszystkie ścieżki/biblioteki, które są potrzebne do zbudowania.

Wygląda na to, że chcesz -all_load -ObjC w innych znacznikach Linker dla swojego celu, a jeśli twój folder projektu jest na tym samym poziomie co folder ninepatch (jak w przypadku pobrania z github), powinieneś także ustawić nagłówek Ścieżki wyszukiwania na Twoim celu do ../NinePatch//**, odpowiednio się zmieniają, jeśli przeniesiesz dowolne foldery.

Poza tym, że jedyną rzeczą, widzę, że będzie, oczywiście, muszą zawierać nagłówki z #import <TUNinePatch.h>

NinePatchDemo zbudowany w porządku dla mnie, więc mogę sprawdzić, czy ich źródło nie działa.

+0

Witaj Evan, dodam też bibliotekę ninepatch.it działa w symulatorze. Podczas uruchamiania na urządzeniu pokazuje błąd. Proszę mi pomóc – banu

+1

Nigdy nie korzystałem z biblioteki, tylko wyjaśniłem, jak zwykle instaluje się bibliotekę stron trzecich powyżej (to było przed cocoapods). Wygląda na to, że projekt nie był aktualizowany od dwóch lat. Powinieneś poszukać alternatywy lub samodzielnie ją przygotować i uruchomić. –

+0

Dziękuję za informację Evan.Jeśli wiesz, używając dziewięciu łatek, proszę udostępnij ten link.it przyda się mi i innym. – banu

1

Wiem, że jest to stare pytanie, ale tylko po to, aby pomóc osobom, które szukają dziewięciu w Celu c, chcę poinformować, że klasa UIImage od ios 5 na, ma metodę zrobić to, co robi dziewiętnastka.

Od UIImage reference:

Dyskusja

użyć tej metody, aby dodać wypustki mocujące do obrazka lub zmiany istniejących wypustkami cap obrazu. W obu przypadkach otrzymujesz z powrotem nowy obraz i oryginalny obraz pozostaje nietknięty.

Podczas skalowania lub zmiany rozmiaru obrazu obszary pokryte maską nie są skalowane ani zmieniane. Zamiast tego obszar piksela nie pokryty zakrętką w każdym kierunku jest kafelkowany, od lewej do prawej i od góry do dołu, aby zmienić rozmiar obrazu na . Ta technika jest często używana do tworzenia przycisków o zmiennej szerokości , które zachowują te same zaokrąglone rogi, ale których region centralny rośnie lub kurczy się w razie potrzeby. Aby uzyskać najlepszą wydajność, użyj kafelkowego obszaru , który ma rozmiar 1 x 1 piksel.

Dostępność Dostępne w iOS 5.0 i nowszych wersjach.

zadeklarowane w UIImage.h

Przykładem zastosowania, jeśli chcesz zdjęcie z fix Góra:

UIImage* image = [UIImage imageNamed:@"YourImage.png"]; 
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(25., 0, 0, 0)] 

nadzieję, że to pomoże.

Powiązane problemy