В момента работя върху малка заявка, в която имам няколко UIButton
с. Всеки от тях има UIImageView
под него. В момента свързвам всеки UIButton
с всеки UIImageView
(всички са наименувани чрез IBOutlet
- UIButton
и UIImageView
). Когато натисна един бутон, изображението се променя. Бих искал да знам дали е възможно (и как) да се създаде бутон, който съдържа основния UIImage
(не UIButton
изображение или фоново изображение), нещо като нов обект.
Това изображение е малко по-голямо от свързаното UIButton
, подобно на основните приложения на калкулатора на ябълка, и това изображение се променя, когато натисна бутона.
Опитах няколко решения (със сигурност непълни) и започвам да се отчайвам.
Сегашното ми решение е функционално, но не ми е особено елегантно.
Отговори:
0 за отговор № 1UIButton
има и двете image
и backgroundImage
като негови свойства.
За да постигнете това, което търсите, всъщност ви препоръчвам да се придържате само към един UIButton
, и след това използва contentInset
за позициониране на image
над backgroundImage
така че създава ефекта, който мисля, че търсите. Това трябва да е много лесно в конструктора на интерфейса ...
0 за отговор № 2
можете да направите невидим бутон и зад него да направите изображението ..
Това ще ви даде това, което искате, но трябва да се избягва на цена ...
Придържайте се UIButton
..
Вярвам, че дори в приложението калкулатор те са самоUIB и нищо друго. те са били кодирани, за да бъдат моментално избрани .. затова ги виждате да променят осветеността за малка фракция и всеки бутон е кодиран, за да изпълнява специфична функция (+ - / равен.)
Актуализация: може да съм под съмнение, но ако сте поискали бутон, за да има изглед на изображението вътре в него.
тогава тук е отговорът.
Направете UI бутон. Направете ImageView и след това извикайте [theButton.view addSubview: ImageView];
Тъй като както UIbutton, така и UIImage изглед наследяват от UIView .. можете да добавите колкото се може повече subviews към тях .. това е в тях
0 за отговор № 3
Ако разбирам правилно въпроса ви, можете да опитате следното:
UIButton * бутон = [UIButton alloc] init]; [бутон setImage: buttonImage forState: UIControlStateNormal]; когато бутонът не е натиснат
[бутон setImage: buttonImage forState: UIControlStateSelected]; когато бутонът е натиснат
[освобождаване на бутон];